- Mar 13, 2008
-
-
Christopher Lamb authored
Get rid of a pseudo instruction and replace it with subreg based operation on real instructions, ridding the asm printers of the hack used to do this previously. In the process, update LowerSubregs to be careful about eliminating copies that have side affects. Note: the coalescer will have to be careful about this too, when it starts coalescing insert_subreg nodes. llvm-svn: 48329
-
- Mar 11, 2008
-
-
Christopher Lamb authored
llvm-svn: 48223
-
- Mar 10, 2008
-
-
Evan Cheng authored
llvm-svn: 48167
-
Christopher Lamb authored
Change insert/extract subreg instructions to be able to be used in TableGen patterns. Use the above features to reimplement an x86-64 pseudo instruction as a pattern. llvm-svn: 48130
-
- Mar 01, 2008
-
-
Andrew Lenharth authored
Add lock prefix support to x86. Also add the instructions necessary for the atomic ops. They are still marked pseudo, since I cannot figure out what format to use, but they are the correct opcode. llvm-svn: 47795
-
- Feb 10, 2008
-
-
Dan Gohman authored
llvm-svn: 46930
-
- Feb 08, 2008
-
-
Evan Cheng authored
It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned. llvm-svn: 46893
-
- Jan 11, 2008
-
-
Chris Lattner authored
both work right according to the new flags. This removes the TII::isReallySideEffectFree predicate, and adds TII::isInvariantLoad. It removes NeverHasSideEffects+MayHaveSideEffects and adds UnmodeledSideEffects as machine instr flags. Now the clients can decide everything they need. I think isRematerializable can be implemented in terms of the flags we have now, though I will let others tackle that. llvm-svn: 45843
-
- Jan 07, 2008
-
-
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: 45679
-
Owen Anderson authored
Some day I'll get it all moved over... llvm-svn: 45672
-
- Jan 05, 2008
-
-
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
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
-
- Dec 30, 2007
-
-
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
-
- Aug 29, 2007
-
-
Duncan Sands authored
in the trampoline lowering. Lookup the jump and mov opcodes for the trampoline rather than hard coding them. llvm-svn: 41577
-
- Jun 26, 2007
-
-
Dan Gohman authored
instruction flag, and use the flag along with a virtual member function hook for targets to override if there are instructions that are only trivially rematerializable with specific operands (i.e. constant pool loads). llvm-svn: 37728
-
- Jun 19, 2007
-
-
Dan Gohman authored
with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. llvm-svn: 37644
-
- Jun 15, 2007
-
-
Dale Johannesen authored
llvm-svn: 37578
-
- Jun 14, 2007
-
-
Dan Gohman authored
implementation for x86. llvm-svn: 37576
-
- May 18, 2007
-
-
Evan Cheng authored
llvm-svn: 37193
-
- Apr 11, 2007
-
-
Bill Wendling authored
llvm-svn: 35869
-
- Jan 26, 2007
-
-
Jim Laskey authored
llvm-svn: 33537
-
- Dec 05, 2006
-
-
Evan Cheng authored
immediate in small code model. The JIT cannot ensure GV's are placed in the lower 4G. - Some preliminary support for large code model. llvm-svn: 32215
-
- Dec 01, 2006
-
-
Evan Cheng authored
llvm-svn: 32098
-
- Oct 28, 2006
-
-
Chris Lattner authored
llvm-svn: 31262
-
- Oct 21, 2006
-
-
Chris Lattner authored
llvm-svn: 31099
-
- Oct 20, 2006
-
-
Chris Lattner authored
llvm-svn: 31065
-
- Oct 18, 2006
-
-
Chris Lattner authored
llvm-svn: 31024
-
- Oct 13, 2006
-
-
Chris Lattner authored
llvm-svn: 30938
-
- Sep 08, 2006
-
-
Evan Cheng authored
llvm-svn: 30177
-
- May 30, 2006
-
-
Evan Cheng authored
llvm-svn: 28574
-
- May 24, 2006
-
-
Chris Lattner authored
by Anton Korobeynikov! This is a step towards closing PR786. llvm-svn: 28447
-
- May 18, 2006
-
-
Evan Cheng authored
llvm-svn: 28381
-