- 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 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: 45680
-
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
-
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 23, 2007
-
-
Gordon Henriksen authored
providing a misleading facility. It's used once in the MIPS backend and hardcoded as "\t.globl\t" everywhere else. llvm-svn: 45338
-
- 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 12, 2007
-
-
Bruno Cardoso Lopes authored
Fixed some AsmPrinter issues Added GLOBAL_OFFSET_TABLE Node handle. llvm-svn: 44024
-
- 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 06, 2007
-
-
Bruno Cardoso Lopes authored
llvm-svn: 43749
-
- Nov 05, 2007
-
-
Bruno Cardoso Lopes authored
Removed all macro code for PIC (goodbye "la"). Support tested with shootout bench. llvm-svn: 43697
-
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 26, 2007
-
-
Eric Christopher authored
want them later (mips32/64). llvm-svn: 43380
-
- 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
-
- Oct 09, 2007
-
-
Bruno Cardoso Lopes authored
llvm-svn: 42780
-
Bruno Cardoso Lopes authored
- Added a function to hold the stack location where GP must be stored during LowerCALL - AsmPrinter now emits directives based on relocation type - PIC_ set to default relocation type (same as GCC) llvm-svn: 42779
-
Bruno Cardoso Lopes authored
- Modified instruction format to handle pseudo instructions - Added LoadAddr SDNode to load symbols. llvm-svn: 42778
-
- 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 24, 2007
-
-
Bruno Cardoso Lopes authored
Fixed some comments llvm-svn: 42271
-