Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 | ||||
* | Start committing working test cases for CellSPU. | Scott Michel | 2007-12-15 | 4 | -4/+52 |
| | | | | llvm-svn: 45050 | ||||
* | Actually, MOVPQIto64mr is a dup of MOVPQI2QImr, MOV64toPQIrm is a dup of ↵ | Evan Cheng | 2007-12-14 | 2 | -11/+2 |
| | | | | | | MOVQI2PQIrm. llvm-svn: 45041 | ||||
* | Fix (mem) <-> low 64-bits of xmm bugs pointed out by David Greene. Mac OS X ↵ | Evan Cheng | 2007-12-14 | 1 | -8/+8 |
| | | | | | | Leopard assembler recognizes movq. llvm-svn: 45040 | ||||
* | Teach the interpreter to read and write memory in the | Duncan Sands | 2007-12-14 | 1 | -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 stack | Dale Johannesen | 2007-12-14 | 1 | -1/+1 |
| | | | | | | for parameter passing (only for that, on Darwin). llvm-svn: 45038 | ||||
* | Fix bsf / bsr jit encoding. | Evan Cheng | 2007-12-14 | 2 | -6/+6 |
| | | | | llvm-svn: 45037 | ||||
* | Oops. Forgot these. | Evan Cheng | 2007-12-14 | 1 | -4/+6 |
| | | | | llvm-svn: 45036 | ||||
* | Add explicit keywords, and fix a minor typo that they uncovered. | Dan Gohman | 2007-12-14 | 5 | -6/+7 |
| | | | | llvm-svn: 45034 | ||||
* | Fix Intel asm syntax for the bsr and bsf instructions. | Dan Gohman | 2007-12-14 | 2 | -12/+12 |
| | | | | llvm-svn: 45030 | ||||
* | Fix ctlz and cttz. llvm definition requires them to return number of bits in ↵ | Evan Cheng | 2007-12-14 | 2 | -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 Cheng | 2007-12-14 | 1 | -1/+1 |
| | | | | llvm-svn: 45028 | ||||
* | All MMX shift instructions took a <2 x i32> vector as the shift amount ↵ | Anders Carlsson | 2007-12-14 | 1 | -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 Cheng | 2007-12-14 | 4 | -9/+103 |
| | | | | llvm-svn: 45024 | ||||
* | Add flags to indicate that there are "never" side effects or that there "may be" | Bill Wendling | 2007-12-14 | 1 | -0/+5 |
| | | | | | | side effects for machine instructions. llvm-svn: 45022 | ||||
* | Make these loops follow GetGEPOperands() behavior. | Wojciech Matyjewicz | 2007-12-13 | 1 | -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 Cheng | 2007-12-13 | 1 | -1/+1 |
| | | | | llvm-svn: 44997 | ||||
* | Add register pairs to the list to check for local interferences. | Owen Anderson | 2007-12-13 | 1 | -4/+10 |
| | | | | llvm-svn: 44987 | ||||
* | Remove ugly and horrible code. It's not necessary for correctness, and can ↵ | Owen Anderson | 2007-12-13 | 1 | -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 Cheng | 2007-12-13 | 1 | -3/+10 |
| | | | | llvm-svn: 44981 | ||||
* | Fold some and + shift in x86 addressing mode. | Evan Cheng | 2007-12-13 | 2 | -6/+48 |
| | | | | llvm-svn: 44970 | ||||
* | Fix for edge profiling, patch by 'Marc' for PR1857 | Chris Lattner | 2007-12-13 | 1 | -1/+1 |
| | | | | llvm-svn: 44965 | ||||
* | Implicit def instructions, e.g. X86::IMPLICIT_DEF_GR32, are always ↵ | Evan Cheng | 2007-12-12 | 13 | -3/+34 |
| | | | | | | re-materializable and they should not be spilled. llvm-svn: 44960 | ||||
* | Remove host endianness info from TargetData and | Duncan Sands | 2007-12-12 | 2 | -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 with | Dan Gohman | 2007-12-12 | 2 | -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 readonly | Duncan Sands | 2007-12-12 | 2 | -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 | ||||
* | 1. "Upgrage" comments. | Wojciech Matyjewicz | 2007-12-12 | 1 | -15/+16 |
| | | | | | | | | | | | | | | 2. Using zero-extended value of Scale and unsigned division is safe provided that Scale doesn't have the sign bit set. Previously these 2 instructions: %p = bitcast [100 x {i8,i8,i8}]* %x to i8* %q = getelementptr i8* %p, i32 -4 were combined into: %q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0, i32 1431655764, i32 0 what was incorrect. llvm-svn: 44936 | ||||
* | Regenerate. | Christopher Lamb | 2007-12-12 | 2 | -1215/+1197 |
| | | | | llvm-svn: 44934 | ||||
* | Implement part of review feedback for address spaces. | Christopher Lamb | 2007-12-12 | 2 | -33/+18 |
| | | | | llvm-svn: 44933 | ||||
* | Use shuffles to implement insert_vector_elt for i32, i64, f32, and f64. | Evan Cheng | 2007-12-12 | 1 | -36/+18 |
| | | | | llvm-svn: 44929 | ||||
* | Lower a build_vector with all constants into a constpool load unless it can ↵ | Evan Cheng | 2007-12-12 | 1 | -14/+16 |
| | | | | | | be done with a move to low part. llvm-svn: 44921 | ||||
* | Add a guard to cxxabi header as other platform may | Zhou Sheng | 2007-12-12 | 1 | -0/+12 |
| | | | | | | not support it. llvm-svn: 44914 | ||||
* | Fixed PR1629. | Zhou Sheng | 2007-12-12 | 1 | -0/+40 |
| | | | | | | | Make lli interpreter correctly call external functions sin()/cos(), __cxa_guard_acquire() and __cxa_guard_release(). llvm-svn: 44910 | ||||
* | Fix a bug in my previous patch, thanks to Jay Foad for | Chris Lattner | 2007-12-12 | 1 | -2/+2 |
| | | | | | | pointing this out and correcting the patch! llvm-svn: 44907 | ||||
* | Don't muck with phi nodes; bug fixes. | Evan Cheng | 2007-12-12 | 1 | -2/+11 |
| | | | | llvm-svn: 44905 | ||||
* | Correct typo for Linux: s/esp/%rsp/ | Scott Michel | 2007-12-12 | 1 | -1/+1 |
| | | | | llvm-svn: 44904 | ||||
* | Forgot to remove a register from the PHI-union after I'd determined that it | Owen Anderson | 2007-12-12 | 1 | -3/+6 |
| | | | | | | interfered with other registers. Seems like that might be a good thing to do. :-) llvm-svn: 44902 | ||||
* | Add (very basic) bindings for ModuleProvider. | Gordon Henriksen | 2007-12-12 | 1 | -0/+14 |
| | | | | llvm-svn: 44899 | ||||
* | Bug fix. Only safe to perform extension uses optimization if the source of ↵ | Evan Cheng | 2007-12-12 | 1 | -0/+5 |
| | | | | | | extension is also defined in the same BB as the extension. llvm-svn: 44896 | ||||
* | Changes from Curtis Dunham implementing lazy cycle detection algorithm. | Daniel Berlin | 2007-12-12 | 1 | -125/+287 |
| | | | | | | | Changes from me implementing different way of representing points-to anything. Changes from me that improve slightly on LCD. llvm-svn: 44895 |