- Dec 12, 2008
-
-
Bill Wendling authored
which are identical to the original patterns. - Change the multiply with overflow so that we distinguish between signed and unsigned multiplication. Currently, unsigned multiplication with overflow isn't working! llvm-svn: 60963
-
Duncan Sands authored
lowering f64 function arguments. llvm-svn: 60944
-
Mon P Wang authored
Added support for TRUNC v8i16 to v8i8 for X86 (MMX) llvm-svn: 60916
-
Bill Wendling authored
ISD::ADD to emit an implicit EFLAGS. This was horribly broken. Instead, replace the intrinsic with an ISD::SADDO node. Then custom lower that into an X86ISD::ADD node with a associated SETCC that checks the correct condition code (overflow or carry). Then that gets lowered into the correct X86::ADDOvf instruction. Similar for SUB and MUL instructions. llvm-svn: 60915
-
- Dec 11, 2008
-
-
Evan Cheng authored
llvm-svn: 60901
-
- Dec 10, 2008
-
-
Evan Cheng authored
llvm-svn: 60851
-
Evan Cheng authored
llvm-svn: 60850
-
Bill Wendling authored
Only perform SETO/SETC to JO/JC conversion if extractvalue is coming from an arithmetic with overflow instruction. llvm-svn: 60844
-
Evan Cheng authored
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. llvm-svn: 60828
-
Bill Wendling authored
llvm-svn: 60826
-
Chris Lattner authored
llvm-svn: 60821
-
Scott Michel authored
- Fix bug 3185, with misc other cleanups. - Needed to implement SPUInstrInfo::InsertBranch(). CAUTION: Not sure what gets or needs to get passed to InsertBranch() to insert a conditional branch. This will abort for now until a good test case shows up. llvm-svn: 60811
-
Bill Wendling authored
overflow/carry from the "arithmetic with overflow" intrinsics. It searches the machine basic block from bottom to top to find the SETO/SETC instruction that is its conditional. If an instruction modifies EFLAGS before it reaches the SETO/SETC instruction, then it defaults to the normal instruction emission. llvm-svn: 60807
-
- Dec 09, 2008
-
-
Bill Wendling authored
target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! llvm-svn: 60800
-
Duncan Sands authored
llvm-svn: 60755
-
Bill Wendling authored
llvm-svn: 60753
-
Scott Michel authored
- Change default scheduling preference to list-burr, which produces somewhat better code than the default. Could also use list-tdrr, but need to ask dev list about the appropriate handy mnemonic before commiting. llvm-svn: 60738
-
Bill Wendling authored
complete. For instance, it lowers the common case into this less-than-optimal code: addl %ecx, %eax seto %cl testb %cl, %cl jne LBB1_2 ## overflow instead of: addl %ecx, %eax jo LBB1_2 ## overflow That will come in a future commit. llvm-svn: 60737
-
Dan Gohman authored
for spotting these! llvm-svn: 60728
-
- Dec 08, 2008
-
-
Evan Cheng authored
llvm-svn: 60711
-
Dan Gohman authored
llvm-svn: 60705
-
Dan Gohman authored
and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696
-
Chris Lattner authored
llvm-svn: 60694
-
Chris Lattner authored
remove some more 64-bit divs and rems from the StructLayout ctor. llvm-svn: 60692
-
Dan Gohman authored
llvm-svn: 60690
-
Evan Cheng authored
llvm-svn: 60689
-
- Dec 07, 2008
-
-
Nick Lewycky authored
llvm-svn: 60651
-
Chris Lattner authored
llvm-svn: 60636
-
- Dec 06, 2008
-
-
Chris Lattner authored
llvm-svn: 60633
-
Chris Lattner authored
llvm-svn: 60632
-
Chris Lattner authored
llvm-svn: 60624
-
Evan Cheng authored
llvm-svn: 60621
-
- Dec 05, 2008
-
-
Dale Johannesen authored
llvm-svn: 60609
-
Dale Johannesen authored
loops when they can be subsumed into addressing modes. Change X86 addressing mode check to realize that some PIC references need an extra register. (I believe this is correct for Linux, if not, I'm sure someone will tell me.) llvm-svn: 60608
-
Evan Cheng authored
Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. llvm-svn: 60596
-
Evan Cheng authored
Effectively undo 60461 in PIC mode which simply transform V_SET0 / V_SETALLONES into a load from constpool in order to fold into restores. This is not safe to do when PIC base is being used for a number of reasons: 1. GlobalBaseReg may have been spilled. 2. It may not be live at the use. 3. Spiller doesn't know this is happening so it won't prevent GlobalBaseReg from being spilled later (That by itself is a nasty hack. It's needed because we don't insert the reload until later). llvm-svn: 60595
-
Evan Cheng authored
Re-did 60519. It turns out Darwin's handling of hidden visibility symbols are a bit more complicate than I expected. Both declarations and weak definitions still need a stub indirection. However, the stubs are in data section and they contain the addresses of the actual symbols. llvm-svn: 60571
-
- Dec 04, 2008
-
-
Scott Michel authored
- Add v4f32, v2f64 to LowerVECTOR_SHUFFLE - Look for vector rotate in shuffle elements, generate a vector rotate instead of a full-blown shuffle when opportunity presents itself. - Generate larger test harness and fix a few interesting but obscure bugs. llvm-svn: 60552
-
Scott Michel authored
llvm-svn: 60541
-
Chris Lattner authored
get it building when NDEBUG is set. llvm-svn: 60532
-