- Jun 05, 2009
-
-
Devang Patel authored
Update code generator to use this attribute and remove NoImplicitFloat target option. Update llc to set this attribute when -no-implicit-float command line option is used. llvm-svn: 72959
-
Nate Begeman authored
build vectors with i64 elements will only appear on 32b x86 before legalize. Since vector widening occurs during legalize, and produces i64 build_vector elements, the dag combiner is never run on these before legalize splits them into 32b elements. Teach the build_vector dag combine in x86 back end to recognize consecutive loads producing the low part of the vector. Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes since that was required implicitly. Add a testcase for the transform. Old: subl $28, %esp movl 32(%esp), %eax movl 4(%eax), %ecx movl %ecx, 4(%esp) movl (%eax), %eax movl %eax, (%esp) movaps (%esp), %xmm0 pmovzxwd %xmm0, %xmm0 movl 36(%esp), %eax movaps %xmm0, (%eax) addl $28, %esp ret New: movl 4(%esp), %eax pmovzxwd (%eax), %xmm0 movl 8(%esp), %eax movaps %xmm0, (%eax) ret llvm-svn: 72957
-
Evan Cheng authored
Changing allocation ordering from r3 ... r0 back to r0 ... r3. The order change no longer make sense after the coalescing changes we have made since then. llvm-svn: 72955
-
Devang Patel authored
llvm-svn: 72954
-
Evan Cheng authored
llvm-svn: 72952
-
Evan Cheng authored
llvm-svn: 72950
-
Dan Gohman authored
llvm-svn: 72948
-
Sanjiv Gupta authored
llvm-svn: 72942
-
Dan Gohman authored
a few lines later on. llvm-svn: 72904
-
Bill Wendling authored
`-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a lot of function, and then they would be `0'. The linker (at least on Darwin) needs to encode the stack size. In some cases, the stack size is too large to directly encode. So the linker checks to see if there is a "subl $xxx,%esp" instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If so, the compact encoding records the offset in the function to where the stack size is embedded. But because the `DW_CFA_advance_loc' instructions are missing, it looks before the function and dies. So, instead of emitting the EH debug label before the stack adjustment operations, emit it afterwards, right before the frame move stuff. llvm-svn: 72898
-
Dan Gohman authored
integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt llvm-svn: 72897
-
Devang Patel authored
Update code generator to use this attribute and remove DisableRedZone target option. Update llc to set this attribute when -disable-red-zone command line option is used. llvm-svn: 72894
-
- Jun 04, 2009
-
-
Dale Johannesen authored
using Promote which won't work because i64 isn't a legal type. It's easy enough to use Custom, but then we have the problem that when the type legalizer is promoting FP_TO_UINT->i16, it has no way of telling it should prefer FP_TO_SINT->i32 to FP_TO_UINT->i32. I have uncomfortably hacked this by making the type legalizer choose FP_TO_SINT when both are Custom. This fixes several regressions in the testsuite. llvm-svn: 72891
-
Sanjiv Gupta authored
llvm-svn: 72866
-
Sanjiv Gupta authored
llvm-svn: 72861
-
Eli Friedman authored
the code tried to use "push", which doesn't exist for XMM registers.) llvm-svn: 72836
-
Eli Friedman authored
llvm-svn: 72830
-
Evan Cheng authored
Re-apply 72756 with fixes. One of those was introduced by we changed MachineInstrBuilder::addReg() interface. llvm-svn: 72826
-
Stuart Hastings authored
llvm-svn: 72817
-
- Jun 03, 2009
-
-
Stuart Hastings authored
llvm-svn: 72808
-
Evan Cheng authored
For Darwin / x86_64, override -relocation-model=static to pic if the output is assembly since Darwin assembler does not really support -static codeine. I view this as a temporary workaround until the assembler / linker changes. llvm-svn: 72806
-
Dan Gohman authored
carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This eliminates the need for them to search through the MachineRegisterInfo livein list in order to identify these virtual registers. EmitLiveInCopies is now the only user of the virtual register portion of MachineRegisterInfo's livein data. llvm-svn: 72802
-
Dan Gohman authored
with an accessor method which simply casts the parent class SelectionDAGISel's TM to the target-specific type. llvm-svn: 72801
-
Mike Stump authored
that puts a new warning in). llvm-svn: 72797
-
Dan Gohman authored
llvm-svn: 72782
-
Sanjiv Gupta authored
Emit file directives correctly in case of a .bc is generated by llvm-ld after linking in several .bc files. llvm-svn: 72781
-
Sanjiv Gupta authored
Expand it exactly like GlobalAddress. Fix some more crashes (InsertBranch() not being implemented) for compiling hitec libs. llvm-svn: 72776
-
Sanjiv Gupta authored
llvm-svn: 72771
-
Duncan Sands authored
this function" when using a not-too-smart compiler. llvm-svn: 72768
-
Evan Cheng authored
llvm-svn: 72757
-
Evan Cheng authored
llvm-svn: 72756
-
Dan Gohman authored
relocation model on x86-64. Higher level logic should override the relocation model to PIC on x86_64-apple-darwin. llvm-svn: 72746
-
- Jun 02, 2009
-
-
Evan Cheng authored
llvm-svn: 72734
-
Dale Johannesen authored
llvm-svn: 72712
-
Dale Johannesen authored
llvm-svn: 72709
-
Dale Johannesen authored
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to) instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust all target-independent code to use this format. Most targets will still produce a Flag-setting target-dependent version when selection is done. X86 is converted to use i32 instead, which means TableGen needs to produce different code in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit in xxxInstrInfo, currently set only for X86; in principle this is temporary and should go away when all other targets have been converted. All relevant X86 instruction patterns are modified to represent setting and using EFLAGS explicitly. The same can be done on other targets. The immediate behavior change is that an ADC/ADD pair are no longer tightly coupled in the X86 scheduler; they can be separated by instructions that don't clobber the flags (MOV). I will soon add some peephole optimizations based on using other instructions that set the flags to feed into ADC. llvm-svn: 72707
-
Dale Johannesen authored
llvm-svn: 72706
-
Dale Johannesen authored
llvm-svn: 72705
-
- Jun 01, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 72698
-
Bruno Cardoso Lopes authored
llvm-svn: 72697
-