Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Two more test cases: or_ops.ll (arithmetic or operations) and vecinsert.ll | Scott Michel | 2007-12-19 | 2 | -6/+5 | |
| | | | | | | (vector insertions) llvm-svn: 45216 | |||||
* | Simplify LowerCallTo by using a callsite. | Duncan Sands | 2007-12-19 | 1 | -41/+27 | |
| | | | | llvm-svn: 45198 | |||||
* | The C++ exception handling personality function wants | Duncan Sands | 2007-12-19 | 3 | -28/+60 | |
| | | | | | | | | | | | | | | | | | | | | | | | to know about calls that cannot throw ('nounwind'): if such a call does throw for some reason then the personality will terminate the program. The distinction between an ordinary call and a nounwind call is that an ordinary call gets an entry in the exception table but a nounwind call does not. This patch sets up the exception table appropriately. One oddity is that I've chosen to bracket nounwind calls with labels (like invokes) - the other choice would have been to bracket ordinary calls with labels. While bracketing ordinary calls is more natural (because bracketing by labels would then correspond exactly to getting an entry in the exception table), I didn't do it because introducing labels impedes some optimizations and I'm guessing that ordinary calls occur more often than nounwind calls. This fixes the gcc filter2 eh test, at least at -O0 (the inliner needs some tweaking at higher optimization levels). llvm-svn: 45197 | |||||
* | Add new immed16.ll test case, fix CellSPU errata to make test case work. | Scott Michel | 2007-12-19 | 5 | -13/+23 | |
| | | | | llvm-svn: 45196 | |||||
* | Mark the "isRemat" instruction as never having side effects. | Bill Wendling | 2007-12-19 | 1 | -1/+1 | |
| | | | | llvm-svn: 45190 | |||||
* | Don't leave newly created nodes around if it turns out they are not needed. | Evan Cheng | 2007-12-19 | 1 | -2/+4 | |
| | | | | llvm-svn: 45186 | |||||
* | Added "GetCurrentDirectory()" to sys::Path. | Ted Kremenek | 2007-12-18 | 2 | -0/+19 | |
| | | | | llvm-svn: 45182 | |||||
* | Add debugging info. Use the newly created "hasUnmodelledSideEffects" method. | Bill Wendling | 2007-12-18 | 1 | -21/+38 | |
| | | | | llvm-svn: 45178 | |||||
* | Fold subtracts into integer compares vs. zero. This improves generate code ↵ | Christopher Lamb | 2007-12-18 | 1 | -1/+18 | |
| | | | | | | | | | | | | | | | | | | | | | | | | for this case on X86 from _foo: movl $99, %ecx movl 4(%esp), %eax subl %eax, %ecx xorl %edx, %edx testl %ecx, %ecx cmovs %edx, %eax ret to _foo: xorl %ecx, %ecx movl 4(%esp), %eax cmpl $99, %eax cmovg %ecx, %eax ret llvm-svn: 45173 | |||||
* | Support more insane CEP's in AsmPrinter (Yes, PyPy folks do really use them). | Anton Korobeynikov | 2007-12-18 | 1 | -1/+24 | |
| | | | | llvm-svn: 45172 | |||||
* | Fix comments | Christopher Lamb | 2007-12-18 | 1 | -4/+2 | |
| | | | | llvm-svn: 45170 | |||||
* | Remove an orthogonal transformation of the selection condition from my most ↵ | Christopher Lamb | 2007-12-18 | 1 | -30/+2 | |
| | | | | | | recent submission. llvm-svn: 45169 | |||||
* | Added "isDirectory" method to llvm::sys::Path. | Ted Kremenek | 2007-12-18 | 2 | -0/+15 | |
| | | | | llvm-svn: 45168 | |||||
* | Fix PR1872: SrcValue and SrcValueOffset should not be used to compute load / ↵ | Evan Cheng | 2007-12-18 | 1 | -20/+0 | |
| | | | | | | store node id. llvm-svn: 45167 | |||||
* | remove obviously dead uses of IncludeFile. | Chris Lattner | 2007-12-18 | 3 | -3/+0 | |
| | | | | llvm-svn: 45165 | |||||
* | Also print alignment and volatileness. | Evan Cheng | 2007-12-18 | 1 | -13/+19 | |
| | | | | llvm-svn: 45164 | |||||
* | remove a dead annotation | Chris Lattner | 2007-12-18 | 1 | -1/+0 | |
| | | | | llvm-svn: 45163 | |||||
* | add an obvious load folding missed optzn. | Chris Lattner | 2007-12-18 | 1 | -0/+21 | |
| | | | | llvm-svn: 45161 | |||||
* | Rename isNoReturn to doesNotReturn, and isNoUnwind to | Duncan Sands | 2007-12-18 | 5 | -14/+14 | |
| | | | | | | doesNotThrow. llvm-svn: 45160 | |||||
* | Fix typos. | Christopher Lamb | 2007-12-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 45159 | |||||
* | Fold certain additions through selects (and their compares) so as to ↵ | Christopher Lamb | 2007-12-18 | 2 | -18/+61 | |
| | | | | | | | | eliminate subtractions. This code is often produced by the SMAX expansion in SCEV. This implements test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll llvm-svn: 45158 | |||||
* | FIX for PR1799: When a load is unfolded from an instruction, check if it is ↵ | Evan Cheng | 2007-12-18 | 1 | -26/+36 | |
| | | | | | | a new node. If not, do not create a new SUnit. llvm-svn: 45157 | |||||
* | SelectionDAG::dump() should print SrcValue of LoadSDNode and StoreSDNode. | Evan Cheng | 2007-12-18 | 1 | -0/+18 | |
| | | | | llvm-svn: 45151 | |||||
* | Don't forget to print address space qualifiers when printing out the type ↵ | Christopher Lamb | 2007-12-18 | 1 | -1/+4 | |
| | | | | | | table! Thanks to Gordon Henriksen for pointing this out. llvm-svn: 45147 | |||||
* | add a missed case. | Chris Lattner | 2007-12-18 | 1 | -0/+18 | |
| | | | | llvm-svn: 45141 | |||||
* | Remove int_x86_sse2_movl_dq. It's replaced with a string compare. | Evan Cheng | 2007-12-18 | 1 | -5/+3 | |
| | | | | llvm-svn: 45140 | |||||
* | Add "mayHaveSideEffects" and "neverHasSideEffects" flags to some instructions. I | Bill Wendling | 2007-12-17 | 7 | -21/+57 | |
| | | | | | | | | | 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 | |||||
* | Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sure | Evan Cheng | 2007-12-17 | 2 | -24/+70 | |
| | | | | | | it's auto-upgraded to a shufflevector instruction. llvm-svn: 45131 | |||||
* | - Restore some i8 functionality in CellSPU | Scott Michel | 2007-12-17 | 7 | -55/+479 | |
| | | | | | | - New test case: nand.ll llvm-svn: 45130 | |||||
* | Modified Deserializer::ReadCStr to allow C-strings to be read into a | Ted Kremenek | 2007-12-17 | 1 | -3/+10 | |
| | | | | | | std::vector<char> starting from any index in the vector. llvm-svn: 45129 | |||||
* | LD_Fp64m should have "isRematerializable" set. | Bill Wendling | 2007-12-17 | 1 | -1/+2 | |
| | | | | llvm-svn: 45128 | |||||
* | As per feedback, revised comments to (hopefully) make the different side effect | Bill Wendling | 2007-12-17 | 1 | -3/+12 | |
| | | | | | | flags clearer. llvm-svn: 45120 | |||||
* | Make invokes of inline asm legal. Teach codegen | Duncan Sands | 2007-12-17 | 3 | -21/+23 | |
| | | | | | | | | how to lower them (with no attempt made to be efficient, since they should only occur for unoptimized code). llvm-svn: 45108 | |||||
* | GLIBCXX_DEBUG fix. std::vector<>::end() is invalidated by erase. | David Greene | 2007-12-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 45101 | |||||
* | Get rid of annoying spaces. | David Greene | 2007-12-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 45100 | |||||
* | Fix GLIBCXX_DEBUG errors. Erase invalidates std::vector iterators | David Greene | 2007-12-17 | 1 | -4/+3 | |
| | | | | | | passed the erased element. llvm-svn: 45099 | |||||
* | C and Ocaml bindings for address spaces, for that burgeoning market | Gordon Henriksen | 2007-12-17 | 1 | -5/+8 | |
| | | | | | | for Ocaml-based compilers targeting embedded devices. :) llvm-svn: 45096 | |||||
* | regenerate. | Christopher Lamb | 2007-12-17 | 2 | -6/+6 | |
| | | | | llvm-svn: 45085 | |||||
* | Change the PointerType api for creating pointer types. The old functionality ↵ | Christopher Lamb | 2007-12-17 | 25 | -107/+131 | |
| | | | | | | of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space. llvm-svn: 45082 | |||||
* | Make it clear in the LangRef that allocation instructions only operated on ↵ | Christopher Lamb | 2007-12-17 | 1 | -0/+8 | |
| | | | | | | the generic address space. Implement support in the verifier for ensuring this is true. llvm-svn: 45080 | |||||
* | Revert this part of r45073 until the verifier is | Duncan Sands | 2007-12-16 | 1 | -2/+3 | |
| | | | | | | changed not to reject invoke of inline asm. llvm-svn: 45077 | |||||
* | don't violate C TBAA rules, use FloatToBits instead. | Chris Lattner | 2007-12-16 | 1 | -22/+10 | |
| | | | | llvm-svn: 45076 | |||||
* | fix a questionable cast, thanks to Mike Stump for pointing this out. | Chris Lattner | 2007-12-16 | 1 | -1/+1 | |
| | | | | llvm-svn: 45075 | |||||
* | Fix the JIT encoding of cmp*ss, which aborts with this assertion currently: | Chris Lattner | 2007-12-16 | 2 | -4/+6 | |
| | | | | | | | | | X86CodeEmitter.cpp:378: failed assertion `0 && "Immediate size not set!"' I *think* this is right, but Evan, please verify. It also looks like CMPSDrr and maybe others are missing this info. Evan, plz investigate. llvm-svn: 45074 | |||||
* | Make instcombine promote inline asm calls to 'nounwind' | Duncan Sands | 2007-12-16 | 3 | -3/+21 | |
| | | | | | | | | | | | | | calls. Remove special casing of inline asm from the inliner. There is a potential problem: the verifier rejects invokes of inline asm (not sure why). If an asm call is not marked "nounwind" in some .ll, and instcombine is not run, but the inliner is run, then an illegal module will be created. This is bad but I'm not sure what the best approach is. I'm tempted to remove the check in the verifier... llvm-svn: 45073 | |||||
* | Remove spurious warnings from GCC: | Bill Wendling | 2007-12-16 | 1 | -75/+79 | |
| | | | | | | | | | warning: suggest a space before ';' or explicit braces around empty body in 'for' statement Patch by Mike Stump (modified slightly by yours truly). llvm-svn: 45071 | |||||
* | Break local interferences in StrongPHIElimination. One step closer... | Owen Anderson | 2007-12-16 | 1 | -0/+135 | |
| | | | | llvm-svn: 45070 | |||||
* | A few more comments. | Owen Anderson | 2007-12-16 | 1 | -1/+6 | |
| | | | | llvm-svn: 45069 | |||||
* | These are more correctly called signaling NaNs. | Duncan Sands | 2007-12-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 45059 | |||||
* | Make better use of instructions that clear high bits; fix various 2-wide ↵ | Evan Cheng | 2007-12-15 | 3 | -45/+119 | |
| | | | | | | shuffle bugs. llvm-svn: 45058 |