Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMInstrInfo.td ARMInstrThumb.td

2007-06-18 Thread Chris Lattner
On Jun 18, 2007, at 6:25 PM, Evan Cheng wrote: > Log message: > > Replace TargetInstrInfo::CanBeDuplicated() with a M_NOT_DUPLICABLE > bit. > Thanks Evan! -Chris ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h

2007-06-17 Thread Evan Cheng
Geeze. I was sure I would've been yelled at had I made it into a targetinstrinfo bit. :-) Really didn't want to go with either approach. But I don't see a better alternative. Evan On Jun 15, 2007, at 2:37 PM, Chris Lattner wrote: > On Jun 15, 2007, at 2:15 PM, Evan Cheng wrote: >> Instructi

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h

2007-06-15 Thread Chris Lattner
On Jun 15, 2007, at 2:15 PM, Evan Cheng wrote: > Instructions with unique labels or embedded jumptables cannot be > duplicated during ifcvt. Please turn this into a targetinstrinfo bit. Virtual methods should only be used for properties whose behavior is a property of the *operands* of the

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 16, 2007, at 1:50 PM, Chris Lattner wrote: >>> Does that mean it can be predicated and the predicate is not set to >>> always? What client do you expect for this? >> >> Right. The only potential client is the if-converter. If anything is >> already predicated on a non-always predicate bef

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Chris Lattner
>> Does that mean it can be predicated and the predicate is not set to >> always? What client do you expect for this? > > Right. The only potential client is the if-converter. If anything is > already predicated on a non-always predicate before if-conversion, it > needs to know. Random thought, p

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 16, 2007, at 11:42 AM, Chris Lattner wrote: >>> Yes, I think this should be the distinction between M_PREDICATED >>> (the >>> instr already has a predicate field, but may be set to 'always') vs >>> M_PREDICABLE (the instr may or may not have a predicate field, but >>> PredicateInstructio

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Chris Lattner
>> Yes, I think this should be the distinction between M_PREDICATED (the >> instr already has a predicate field, but may be set to 'always') vs >> M_PREDICABLE (the instr may or may not have a predicate field, but >> PredicateInstruction can change it into one that does). > > I dunno if that's the

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Chris Lattner
On May 16, 2007, at 11:21 AM, Evan Cheng wrote: >> I realized this morning what I really meant :). I think that >> isPredicable should be a non-virtual function that checks TID- >>> Flags&M_PREDICATED (Actually, it might make sense to introduce a >> new M_PREDICABLE flag). Further, the default

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 16, 2007, at 10:09 AM, Chris Lattner wrote: > On May 16, 2007, at 1:18 AM, Evan Cheng wrote: >>> But even then I am not sure if that eliminate the need to have a >>> virtual function isPredicatable. Conditional branches probably would >>> require special handling. Also, while it isn't poss

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 16, 2007, at 10:06 AM, Chris Lattner wrote: > On May 16, 2007, at 1:02 AM, Evan Cheng wrote: >>> I don't think there is any reason for this to be virtual and target- >>> specific. In particular, can you please model B/tB the same way PPC >>> handles branches (where an uncond branch is jus

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Chris Lattner
On May 16, 2007, at 1:18 AM, Evan Cheng wrote: >> But even then I am not sure if that eliminate the need to have a >> virtual function isPredicatable. Conditional branches probably would >> require special handling. Also, while it isn't possible now, it's >> conceivable some instruction predicate f

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Chris Lattner
On May 16, 2007, at 1:02 AM, Evan Cheng wrote: >> I don't think there is any reason for this to be virtual and target- >> specific. In particular, can you please model B/tB the same way PPC >> handles branches (where an uncond branch is just a conditional branch >> where the condition is set to 'a

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 16, 2007, at 1:02 AM, Evan Cheng wrote: > > On May 15, 2007, at 11:50 PM, Chris Lattner wrote: >> >> I don't think there is any reason for this to be virtual and target- >> specific. In particular, can you please model B/tB the same way PPC >> handles branches (where an uncond branch is j

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-16 Thread Evan Cheng
On May 15, 2007, at 11:50 PM, Chris Lattner wrote: >> Hooks for predication support. > > yay! > >> +bool ARMInstrInfo::isPredicatable(MachineInstr *MI) const { >> + const TargetInstrDescriptor *TID = MI->getInstrDescriptor(); >> + if (TID->Flags & M_PREDICATED) >> +return true; >> + >> + u

Re: [llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.cpp ARMInstrInfo.h ARMTargetMachine.cpp ARMTargetMachine.h

2007-05-15 Thread Chris Lattner
> Hooks for predication support. yay! > +bool ARMInstrInfo::isPredicatable(MachineInstr *MI) const { > + const TargetInstrDescriptor *TID = MI->getInstrDescriptor(); > + if (TID->Flags & M_PREDICATED) > +return true; > + > + unsigned Opc = MI->getOpcode(); > + return Opc == ARM::B || Opc