- Jan 17, 2008
-
-
Scott Michel authored
Fixed CellSPU's A-form (local store) address mode, so that all globals, externals, constant pool and jump table symbols are now wrapped within a SPUISD::AFormAddr pseudo-instruction. This now identifies all local store memory addresses, although it requires a bit of legerdemain during instruction selection to properly select loads to and stores from local store, properly generating "LQA" instructions. Also added mul_ops.ll test harness for exercising integer multiplication. llvm-svn: 46142
-
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 15, 2008
-
-
Chris Lattner authored
Move definition of 'trap' sdnode up from x86 instrinfo to targetselectiondag.td. llvm-svn: 46017
-
- Jan 12, 2008
-
-
Chris Lattner authored
llvm-svn: 45917
-
- Jan 11, 2008
-
-
Scott Michel authored
- struct_2.ll: Completely unaligned load/store testing - call_indirect.ll, struct_1.ll: Add test lines to exercise X-form [$reg($reg)] addressing At this point, loads and stores should be under control (he says in an optimistic tone of voice.) llvm-svn: 45882
-
Scott Michel authored
- Cleaned up custom load/store logic, common code is now shared [see note below], cleaned up address modes - More test cases: various intrinsics, structure element access (load/store test), updated target data strings, indirect function calls. Note: This patch contains a refactoring of the LoadSDNode and StoreSDNode structures: they now share a common base class, LSBaseSDNode, that provides an interface to their common functionality. There is some hackery to access the proper operand depending on the derived class; otherwise, to do a proper job would require finding and rearranging the SDOperands sent to StoreSDNode's constructor. The current refactor errs on the side of being conservatively and backwardly compatible while providing functionality that reduces redundant code for targets where loads and stores are custom-lowered. llvm-svn: 45851
-
- Jan 07, 2008
-
-
Chris Lattner authored
llvm-svn: 45683
-
Chris Lattner authored
llvm-svn: 45679
-
Owen Anderson authored
Some day I'll get it all moved over... llvm-svn: 45672
-
Chris Lattner authored
llvm-svn: 45667
-
- Jan 06, 2008
-
-
Chris Lattner authored
instead of "ISD::STORE". This allows us to mark target-specific dag nodes as storing (such as ppc byteswap stores). This allows us to remove more explicit isStore flags from the .td files. Finally, add a warning for when a .td file contains an explicit isStore and tblgen is able to infer it. llvm-svn: 45654
-
- 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 22, 2007
-
-
Chris Lattner authored
llvm-svn: 45325
-
Chris Lattner authored
llvm-svn: 45324
-
- Dec 20, 2007
-
-
Scott Michel authored
- vec_const.ll: Vector constant loads - immed64.ll: i64, f64 constant loads llvm-svn: 45242
-
- Dec 19, 2007
-
-
Scott Michel authored
llvm-svn: 45219
-
Scott Michel authored
(vector insertions) llvm-svn: 45216
-
Scott Michel authored
llvm-svn: 45196
-
- Dec 17, 2007
-
-
Scott Michel authored
- New test case: nand.ll llvm-svn: 45130
-
- Dec 16, 2007
-
-
Chris Lattner authored
llvm-svn: 45076
-
- Dec 15, 2007
-
-
Scott Michel authored
llvm-svn: 45050
-
- Dec 05, 2007
-
-
Scott Michel authored
- Fix typo in SPUCallingConv.td - Credit myself for CellSPU work - Add CellSPU to 'all' host target list llvm-svn: 44627
-
Evan Cheng authored
llvm-svn: 44621
-
Chris Lattner authored
llvm-svn: 44620
-
Chris Lattner authored
llvm-svn: 44619
-
Evan Cheng authored
the stored register is killed. llvm-svn: 44600
-
Scott Michel authored
compilation (no files missing). Test cases remain to be checked in. llvm-svn: 44598
-
Scott Michel authored
llvm-svn: 44597
-
Scott Michel authored
llvm-svn: 44596
-
Scott Michel authored
remain. llvm-svn: 44595
-
- Dec 04, 2007
-
-
Scott Michel authored
llvm-svn: 44584
-
Scott Michel authored
llvm-svn: 44582
-
Scott Michel authored
llvm-svn: 44559
-