- Jan 17, 2008
-
-
Chris Lattner authored
1. Legalize now always promotes truncstore of i1 to i8. 2. Remove patterns and gunk related to truncstore i1 from targets. 3. Rename the StoreXAction stuff to TruncStoreAction in TLI. 4. Make the TLI TruncStoreAction table a 2d table to handle from/to conversions. 5. Mark a wide variety of invalid truncstores as such in various targets, e.g. X86 currently doesn't support truncstore of any of its integer types. 6. Add legalize support for truncstores with invalid value input types. 7. Add a dag combine transform to turn store(truncate) into truncstore when safe. The later allows us to compile CodeGen/X86/storetrunc-fp.ll to: _foo: fldt 20(%esp) fldt 4(%esp) faddp %st(1) movl 36(%esp), %eax fstps (%eax) ret instead of: _foo: subl $4, %esp fldt 24(%esp) fldt 8(%esp) faddp %st(1) fstps (%esp) movl 40(%esp), %eax movss (%esp), %xmm0 movss %xmm0, (%eax) addl $4, %esp ret llvm-svn: 46140
-
- Jan 11, 2008
-
-
Chris Lattner authored
llvm-svn: 45871
-
- Jan 07, 2008
-
-
Duncan Sands authored
llvm-svn: 45712
-
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
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 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
-
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
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
Chris Lattner authored
llvm-svn: 45415
-
- Dec 13, 2007
-
-
Evan Cheng authored
Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always re-materializable and they should not be spilled. llvm-svn: 44960
-
- Dec 05, 2007
-
-
Evan Cheng authored
the stored register is killed. llvm-svn: 44600
-
- Dec 02, 2007
-
-
Evan Cheng authored
llvm-svn: 44517
-
- Dec 01, 2007
-
-
Evan Cheng authored
llvm-svn: 44479
-
- Nov 13, 2007
-
-
Dale Johannesen authored
to use different mappings for EH and debug info; no functional change yet. Fix warning in X86CodeEmitter. llvm-svn: 44056
-
Bill Wendling authored
llvm-svn: 44045
-
Bill Wendling authored
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If not, then there is the potential for the stack to be changed while the stack's being used by another instruction (like a call). This can only result in tears... llvm-svn: 44037
-
- Nov 11, 2007
-
-
Anton Korobeynikov authored
This makes DwarfRegNum to accept list of numbers instead. Added three different "flavours", but only slightly tested on x86-32/linux. Please check another subtargets if possible, llvm-svn: 43997
-
- Nov 05, 2007
-
-
Duncan Sands authored
should only effect x86 when using long double. Now 12/16 bytes are output for long double globals (the exact amount depends on the alignment). This brings globals in line with the rest of LLVM: the space reserved for an object is now always the ABI size. One tricky point is that only 10 bytes should be output for long double if it is a field in a packed struct, which is the reason for the additional argument to EmitGlobalConstant. llvm-svn: 43688
-
- Oct 19, 2007
-
-
Evan Cheng authored
- Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but only returns the opcode of the instruction post unfolding. - Fix some copy+paste bugs. llvm-svn: 43153
-
- Oct 18, 2007
-
-
Evan Cheng authored
llvm-svn: 43150
-
- Oct 14, 2007
-
-
Evan Cheng authored
llvm-svn: 42960
-
- Oct 12, 2007
-
-
Dan Gohman authored
function symbol name instead of a codegen-assigned function number. Thanks Evan! :-) llvm-svn: 42908
-
Dan Gohman authored
llvm-svn: 42881
-
- Oct 10, 2007
-
-
Chris Lattner authored
illegal. Thanks to gabor for pointing this out! llvm-svn: 42832
-
- Oct 05, 2007
-
-
Evan Cheng authored
address (not just from / to frameindexes). - Added target hooks to unfold load / store instructions / SDNodes into separate load, data processing, store instructions / SDNodes. llvm-svn: 42621
-
- Sep 26, 2007
-
-
Evan Cheng authored
Tested with "make check"! llvm-svn: 42346
-
- Sep 25, 2007
-
-
Dan Gohman authored
llvm-svn: 42316
-
- Sep 11, 2007
-
-
Evan Cheng authored
llvm-svn: 41863
-
Duncan Sands authored
init_trampoline. There is now only one trampoline intrinsic. llvm-svn: 41841
-
- Sep 07, 2007
-
-
Owen Anderson authored
Patch by Sterling Stein! llvm-svn: 41758
-
- Aug 30, 2007
-
-
Evan Cheng authored
Add a variant of foldMemoryOperand to fold any load / store, not just load / store from / to stack slots. llvm-svn: 41597
-
- Aug 03, 2007
-
-
Dale Johannesen authored
(I've tried to get the info right for all targets, but I'm not expert on all of them - check yours.) llvm-svn: 40792
-
- Jul 27, 2007
-
-
Duncan Sands authored
still under discussion. llvm-svn: 40549
-
- Jul 25, 2007
-
-
Dan Gohman authored
AsmPrinter::doFinalization. llvm-svn: 40487
-
- Jul 21, 2007
-
-
Evan Cheng authored
llvm-svn: 40132
-