summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove int_x86_sse2_movl_dq. It's replaced with a string compare.Evan Cheng2007-12-181-5/+3
| | | | llvm-svn: 45140
* Add "mayHaveSideEffects" and "neverHasSideEffects" flags to some instructions. IBill Wendling2007-12-177-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 sureEvan Cheng2007-12-172-24/+70
| | | | | | it's auto-upgraded to a shufflevector instruction. llvm-svn: 45131
* - Restore some i8 functionality in CellSPUScott Michel2007-12-177-55/+479
| | | | | | - New test case: nand.ll llvm-svn: 45130
* Modified Deserializer::ReadCStr to allow C-strings to be read into aTed Kremenek2007-12-171-3/+10
| | | | | | std::vector<char> starting from any index in the vector. llvm-svn: 45129
* LD_Fp64m should have "isRematerializable" set.Bill Wendling2007-12-171-1/+2
| | | | llvm-svn: 45128
* As per feedback, revised comments to (hopefully) make the different side effectBill Wendling2007-12-171-3/+12
| | | | | | flags clearer. llvm-svn: 45120
* Make invokes of inline asm legal. Teach codegenDuncan Sands2007-12-173-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 Greene2007-12-171-1/+1
| | | | llvm-svn: 45101
* Get rid of annoying spaces.David Greene2007-12-171-1/+1
| | | | llvm-svn: 45100
* Fix GLIBCXX_DEBUG errors. Erase invalidates std::vector iteratorsDavid Greene2007-12-171-4/+3
| | | | | | passed the erased element. llvm-svn: 45099
* C and Ocaml bindings for address spaces, for that burgeoning marketGordon Henriksen2007-12-171-5/+8
| | | | | | for Ocaml-based compilers targeting embedded devices. :) llvm-svn: 45096
* regenerate.Christopher Lamb2007-12-172-6/+6
| | | | llvm-svn: 45085
* Change the PointerType api for creating pointer types. The old functionality ↵Christopher Lamb2007-12-1725-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 Lamb2007-12-171-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 isDuncan Sands2007-12-161-2/+3
| | | | | | changed not to reject invoke of inline asm. llvm-svn: 45077
* don't violate C TBAA rules, use FloatToBits instead.Chris Lattner2007-12-161-22/+10
| | | | llvm-svn: 45076
* fix a questionable cast, thanks to Mike Stump for pointing this out.Chris Lattner2007-12-161-1/+1
| | | | llvm-svn: 45075
* Fix the JIT encoding of cmp*ss, which aborts with this assertion currently:Chris Lattner2007-12-162-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 Sands2007-12-163-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 Wendling2007-12-161-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 Anderson2007-12-161-0/+135
| | | | llvm-svn: 45070
* A few more comments.Owen Anderson2007-12-161-1/+6
| | | | llvm-svn: 45069
* These are more correctly called signaling NaNs.Duncan Sands2007-12-151-1/+1
| | | | llvm-svn: 45059
* Make better use of instructions that clear high bits; fix various 2-wide ↵Evan Cheng2007-12-153-45/+119
| | | | | | shuffle bugs. llvm-svn: 45058
* Start committing working test cases for CellSPU.Scott Michel2007-12-154-4/+52
| | | | llvm-svn: 45050
* Actually, MOVPQIto64mr is a dup of MOVPQI2QImr, MOV64toPQIrm is a dup of ↵Evan Cheng2007-12-142-11/+2
| | | | | | MOVQI2PQIrm. llvm-svn: 45041
* Fix (mem) <-> low 64-bits of xmm bugs pointed out by David Greene. Mac OS X ↵Evan Cheng2007-12-141-8/+8
| | | | | | Leopard assembler recognizes movq. llvm-svn: 45040
* Teach the interpreter to read and write memory in theDuncan Sands2007-12-141-59/+94
| | | | | | | | | | endianness of the target not of the host. Done by the simple expedient of reversing bytes for primitive types if the host and target endianness don't match. This is correct for integer and pointer types. I don't know if it is correct for floating point types. llvm-svn: 45039
* x86-32 long doubles are 4-byte aligned on the stackDale Johannesen2007-12-141-1/+1
| | | | | | for parameter passing (only for that, on Darwin). llvm-svn: 45038
* Fix bsf / bsr jit encoding.Evan Cheng2007-12-142-6/+6
| | | | llvm-svn: 45037
* Oops. Forgot these.Evan Cheng2007-12-141-4/+6
| | | | llvm-svn: 45036
* Add explicit keywords, and fix a minor typo that they uncovered.Dan Gohman2007-12-145-6/+7
| | | | llvm-svn: 45034
* Fix Intel asm syntax for the bsr and bsf instructions.Dan Gohman2007-12-142-12/+12
| | | | llvm-svn: 45030
* Fix ctlz and cttz. llvm definition requires them to return number of bits in ↵Evan Cheng2007-12-142-14/+42
| | | | | | of the src type when value is zero. llvm-svn: 45029
* Bug fix. Must also match ResNo when matching an operand with a user.Evan Cheng2007-12-141-1/+1
| | | | llvm-svn: 45028
* All MMX shift instructions took a <2 x i32> vector as the shift amount ↵Anders Carlsson2007-12-141-0/+68
| | | | | | parameter. Change this to be <1 x i64> instead, which matches the assembler instruction. llvm-svn: 45027
* Implement ctlz and cttz with bsr and bsf.Evan Cheng2007-12-144-9/+103
| | | | llvm-svn: 45024
* Add flags to indicate that there are "never" side effects or that there "may be"Bill Wendling2007-12-141-0/+5
| | | | | | side effects for machine instructions. llvm-svn: 45022
* Make these loops follow GetGEPOperands() behavior.Wojciech Matyjewicz2007-12-131-11/+13
| | | | | | | Let: %q = GEP %p, X, ... If %p is a GEP, we can chase baseptr further, only if X==0. llvm-svn: 44999
* Fix typo.Evan Cheng2007-12-131-1/+1
| | | | llvm-svn: 44997
* Add register pairs to the list to check for local interferences.Owen Anderson2007-12-131-4/+10
| | | | llvm-svn: 44987
* Remove ugly and horrible code. It's not necessary for correctness, and can ↵Owen Anderson2007-12-131-47/+7
| | | | | | be added back later if it causes code quality issues. llvm-svn: 44986
* Be extra careful with extension use optimation. Now turned on by default.Evan Cheng2007-12-131-3/+10
| | | | llvm-svn: 44981
* Fold some and + shift in x86 addressing mode.Evan Cheng2007-12-132-6/+48
| | | | llvm-svn: 44970
* Fix for edge profiling, patch by 'Marc' for PR1857Chris Lattner2007-12-131-1/+1
| | | | llvm-svn: 44965
* Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always ↵Evan Cheng2007-12-1213-3/+34
| | | | | | re-materializable and they should not be spilled. llvm-svn: 44960
* Remove host endianness info from TargetData andDuncan Sands2007-12-122-11/+3
| | | | | | | | put it in a new header System/Host.h instead. Instead of getting the endianness from configure, calculate it directly. llvm-svn: 44959
* Allow vector integer constants to be created withDan Gohman2007-12-122-9/+28
| | | | | | | | SelectionDAG::getConstant, in the same way as vector floating-point constants. This allows the legalize expansion code for @llvm.ctpop and friends to be usable with vector types. llvm-svn: 44954
* Revert r44626, which turned off the use of readonlyDuncan Sands2007-12-122-15/+4
| | | | | | | | | | and readnone for functions with bodies because it broke llvm-gcc-4.2 bootstrap. It turns out that, because of LLVM's array_ref hack, gcc was computing pure/const attributes wrong (now fixed by turning off the gcc ipa-pure-const pass). llvm-svn: 44937
OpenPOWER on IntegriCloud