- Jan 09, 2008
-
-
Chris Lattner authored
llvm-svn: 45768
-
- Jan 07, 2008
-
-
Bill Wendling authored
llvm-svn: 45699
-
Chris Lattner authored
Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
-
Chris Lattner authored
llvm-svn: 45680
-
Chris Lattner authored
llvm-svn: 45679
-
Chris Lattner authored
over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. llvm-svn: 45677
-
Chris Lattner authored
that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
-
Owen Anderson authored
Some day I'll get it all moved over... llvm-svn: 45672
-
- Jan 06, 2008
-
-
Bill Wendling authored
llvm-svn: 45638
-
- Jan 05, 2008
-
-
Bill Wendling authored
checking that there was a from a global instead of a load from the stub for a global, which is the one that's safe to hoist. Consider this program: volatile char G[100]; int B(char *F, int N) { for (; N > 0; --N) F[N] = G[N]; } In static mode, we shouldn't be hoisting the load from G: $ llc -relocation-model=static -o - a.bc -march=x86 -machine-licm LBB1_1: # bb.preheader leal -1(%eax), %edx testl %edx, %edx movl $1, %edx cmovns %eax, %edx xorl %esi, %esi LBB1_2: # bb movb _G(%eax), %bl movb %bl, (%ecx,%eax) llvm-svn: 45626
-
Chris Lattner authored
for remat, but can't due to an RA bug. llvm-svn: 45623
-
Chris Lattner authored
llvm-svn: 45622
-
Chris Lattner authored
llvm-svn: 45621
-
Chris Lattner authored
isReallySideEffectFree and isReallyTriviallyReMaterializable. Why is a load from a global considered side-effect-free but not rematable? llvm-svn: 45620
-
Owen Anderson authored
llvm-svn: 45603
-
- Jan 02, 2008
-
-
Bill Wendling authored
check that register isn't 0 before going further. llvm-svn: 45498
-
- Jan 01, 2008
-
-
Owen Anderson authored
llvm-svn: 45484
-
Chris Lattner authored
Fix a bug in my previous patch: refer to the impl not the pure virtual version. It's unclear why gcc would ever compile this... llvm-svn: 45476
-
Chris Lattner authored
a header file from libcodegen. This violates a layering order: codegen depends on target, not the other way around. The fix to this is to split TII into two classes, TII and TargetInstrInfoImpl, which defines stuff that depends on libcodegen. It is defined in libcodegen, where the base is not. llvm-svn: 45475
-
- Dec 31, 2007
-
-
Owen Anderson authored
Machine-level API cleanup instigated by Chris. llvm-svn: 45470
-
Chris Lattner authored
that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467
-
Chris Lattner authored
e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. llvm-svn: 45464
-
- Dec 30, 2007
-
-
Chris Lattner authored
Use MachineOperand::getImm instead of MachineOperand::getImmedValue. Likewise setImmedValue -> setImm llvm-svn: 45453
-
Bill Wendling authored
function, then go ahead and hoist it out of the loop. This is the result: $ cat a.c volatile int G; int A(int N) { for (; N > 0; --N) G++; } $ llc -o - -relocation-model=pic _A: ... LBB1_2: # bb movl L_G$non_lazy_ptr-"L1$pb"(%eax), %esi incl (%esi) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... $ llc -o - -relocation-model=pic -machine-licm _A: ... movl L_G$non_lazy_ptr-"L1$pb"(%eax), %eax LBB1_2: # bb incl (%eax) incl %edx cmpl %ecx, %edx jne LBB1_2 # bb ... I'm limiting this to the MOV32rm x86 instruction for now. llvm-svn: 45444
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 18, 2007
-
-
Bill Wendling authored
based what flag to set on whether it was already marked as "isRematerializable". If there was a further check to determine if it's "really" rematerializable, then I marked it as "mayHaveSideEffects" and created a check in the X86 back-end similar to the remat one. llvm-svn: 45132
-
- Dec 09, 2007
-
-
Bill Wendling authored
llvm-svn: 44727
-
- Dec 08, 2007
-
-
Bill Wendling authored
isTriviallyReMaterializable -> hasNoSideEffects isReallyTriviallyReMaterializable -> isTriviallyReMaterializable llvm-svn: 44702
-
- Oct 11, 2007
-
-
Arnold Schwaighofer authored
enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden llvm-svn: 42870
-
- Oct 09, 2007
-
-
Evan Cheng authored
llvm-svn: 42783
-
- Oct 08, 2007
-
-
Evan Cheng authored
llvm-svn: 42761
-
- Oct 06, 2007
-
-
Evan Cheng authored
to its inverse. Testing this as llcbeta llvm-svn: 42661
-
Evan Cheng authored
llvm-svn: 42655
-
- Oct 05, 2007
-
-
Evan Cheng authored
cause performance degradation. llvm-svn: 42653
-
Evan Cheng authored
leal 1(%ecx), %edi, which requires 67H prefix. llvm-svn: 42647
-
Evan Cheng authored
llvm-svn: 42642
-
Evan Cheng authored
llvm-svn: 42630
-
- Sep 29, 2007
-
-
Evan Cheng authored
llvm-svn: 42459
-
- Sep 25, 2007
-
-
Evan Cheng authored
Added support for new condition code modeling scheme (i.e. physical register dependency). These are a bunch of instructions that are duplicated so the x86 backend can support both the old and new schemes at the same time. They will be deleted after all the kinks are worked out. llvm-svn: 42285
-
- Sep 17, 2007
-
-
Dan Gohman authored
can terminate a block with no fall-through. llvm-svn: 42029
-