- 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 15, 2008
-
-
Chris Lattner authored
Move definition of 'trap' sdnode up from x86 instrinfo to targetselectiondag.td. llvm-svn: 46017
-
Chris Lattner authored
llvm-svn: 46015
-
Anton Korobeynikov authored
llvm-svn: 46012
-
Anton Korobeynikov authored
as well as PPC codegen llvm-svn: 46001
-
- Jan 11, 2008
-
-
Chris Lattner authored
llvm-svn: 45870
-
Chris Lattner authored
llvm-svn: 45860
-
- Jan 10, 2008
-
-
Chris Lattner authored
llvm-svn: 45838
-
Chris Lattner authored
x86 backend where instructions were not marked maystore/mayload, and perf issues where instructions were not marked neverHasSideEffects. It would be really nice if we could write patterns for copy instructions. I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on other targets are probably not right in all cases, but no clients currently use this info that are enabled by default. llvm-svn: 45829
-
Chris Lattner authored
llvm-svn: 45826
-
Chris Lattner authored
inferred from the instr patterns. llvm-svn: 45824
-
Chris Lattner authored
llvm-svn: 45821
-
- Jan 07, 2008
-
-
Chris Lattner authored
llvm-svn: 45668
-
Chris Lattner authored
llvm-svn: 45667
-
- Jan 05, 2008
-
-
Chris Lattner authored
llvm-svn: 45618
-
Evan Cheng authored
llvm-svn: 45605
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Dec 22, 2007
-
-
Evan Cheng authored
llvm-svn: 45307
-
- 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 14, 2007
-
-
Evan Cheng authored
llvm-svn: 45037
-
Dan Gohman authored
llvm-svn: 45030
-
Evan Cheng authored
Fix ctlz and cttz. llvm definition requires them to return number of bits in of the src type when value is zero. llvm-svn: 45029
-
Evan Cheng authored
llvm-svn: 45024
-
- Dec 13, 2007
-
-
Evan Cheng authored
llvm-svn: 44970
-
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
-
- Nov 13, 2007
-
-
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
-
-
Owen Anderson authored
Target maintainers: please check that the instructions for your target are correctly marked. llvm-svn: 44012
-
- Oct 19, 2007
-
-
Evan Cheng authored
Turn a store folding instruction into a load folding instruction. e.g. xorl %edi, %eax movl %eax, -32(%ebp) movl -36(%ebp), %eax orl %eax, -32(%ebp) => xorl %edi, %eax orl -36(%ebp), %eax mov %eax, -32(%ebp) This enables the unfolding optimization for a subsequent instruction which will also eliminate the newly introduced store instruction. llvm-svn: 43192
-
- Oct 12, 2007
-
-
Arnold Schwaighofer authored
for fastcc from X86CallingConv.td. This means that nested functions are not supported for calling convention 'fastcc'. llvm-svn: 42934
-
- 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 06, 2007
-
-
Evan Cheng authored
to its inverse. Testing this as llcbeta llvm-svn: 42661
-
- Oct 05, 2007
-
-
Evan Cheng authored
llvm-svn: 42640
-
- Sep 29, 2007
-
-
Evan Cheng authored
llvm-svn: 42459
-
- Sep 28, 2007
-
-
Evan Cheng authored
llvm-svn: 42429
-
Evan Cheng authored
llvm-svn: 42426
-
- Sep 26, 2007
-
-
Evan Cheng authored
Some assemblers do not recognize aliases pushfd, pushfq, popfd, and popfq. Just emit them as pushf and popf. llvm-svn: 42371
-
Evan Cheng authored
llvm-svn: 42348
-
Evan Cheng authored
llvm-svn: 42335
-
- 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
-