10050d19e857396e65289c05ce9714e0a570deed |
|
11-Jul-2013 |
Hal Finkel <hfinkel@anl.gov> |
Don't assert if we can't constant fold extract/insertvalue A non-constant-foldable static initializer expression containing insertvalue or extractvalue had been causing an assert: Constants.cpp:1971: Assertion `FC && "ExtractValue constant expr couldn't be folded!"' failed. Now we report a more-sensible "Unsupported expression in static initializer" error instead. Fixes PR15417. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
c06e5cf2e3724762a6c9830a00395736ec07d81a |
|
13-Jun-2013 |
Derek Schuff <dschuff@google.com> |
Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses This pass was assuming that if hasAddressTaken() returns false for a function, the function's only uses are call sites. That's not true because there can be references by BlockAddresses too. Fix the pass to handle this case. Fix BlockAddress::replaceUsesOfWithOnConstant() to allow a function's type to be changed by RAUW'ing the function with a bitcast of the recreated function. Patch by Mark Seaborn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
6dd56e60b002e5f3317bcc461be7fb8f6b19bbf5 |
|
01-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move object construction into [] so the temporary can be moved. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
8848680ce0ab416cb646d0a03aa6f4f6f25e7623 |
|
13-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a scalability issue with complex ConstantExprs. This is basically the same fix in three different places. We use a set to avoid walking the whole tree of a big ConstantExprs multiple times. For example: (select cmp, (add big_expr 1), (add big_expr 2)) We don't want to visit big_expr twice here, it may consist of thousands of nodes. The testcase exercises this by creating an insanely large ConstantExprs out of a loop. It's questionable if the optimizer should ever create those, but this can be triggered with real C code. Fixes PR15714. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
974cdfb17a08abae3ba5850bc1a1c801f41319c1 |
|
19-Mar-2013 |
David Tweed <david.tweed@arm.com> |
The testing to ensure a vector of zeros of type floating point isn't misclassified as negative zero can be simplified, as pointed out by Duncan Sands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
ec7eb55cc4c35318ff0ec4e04c0d42e5a65e1811 |
|
18-Mar-2013 |
David Tweed <david.tweed@arm.com> |
The optimization a + (-0.0f) -> a was being misapplied to a + (+0.0f) in the vector case (because we weren't differntiating floating-point zeroinitializers from other zero-initializers) which was causing problems for code relying upon a + (+0.0f) to, eg, flush denormals to 0. Make the scalar and vector cases have the same behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
4e4cc7dae8d2b2f8a07c38f4d61e0b94b13d008b |
|
07-Mar-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace temporary vectors with arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
55d8f6d49023de5182efbb29d0b3bd0035909d62 |
|
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
ArrayRef has a OneElt constructor. Beautify the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
82e905aae4fe815fc57f50663467cb03e4c9e9e1 |
|
07-Mar-2013 |
Nadav Rotem <nrotem@apple.com> |
Switch from std::vector to ArrayRef. Speedup FoldBitCast by 5x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
0a29cb045444c13160e90fe7942a9d7c720185ed |
|
22-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Make APFloat constructor require explicit semantics. Previously we tried to infer it from the bit width size, with an added IsIEEE argument for the PPC/IEEE 128-bit case, which had a default value. This default value allowed bugs to creep in, where it was inappropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
655578f8b5275e7c59b87d4709b0d56b2621caac |
|
16-Jan-2013 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Allow vectors in CreatePointerCast of constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
c3d6de2fe52dbdbf41b1dfebb1430656a16b254b |
|
09-Jan-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Add comment to the definition of Constant::isZeroValue(). (There already has a concise comment to the declaration.) Thank Eric Christopher for his feedback! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
935e35d2b9f889566207b76a7026b63a1619742c |
|
09-Jan-2013 |
Shuxin Yang <shuxin.llvm@gmail.com> |
Consider expression "0.0 - X" as the negation of X if - this expression is explicitly marked no-signed-zero, or - no-signed-zero of this expression can be derived from some context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|
c2c50cdcdc19a1bca993c06d13d8cdca87083ce4 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Rename VMCore directory to IR. Aside from moving the actual files, this patch only updates the build system and the source file comments under lib/... that are relevant. I'll be updating other docs and other files in smaller subsequnet commits. While I've tried to test this, but it is entirely possible that there will still be some build system fallout. Also, note that I've not changed the library name itself: libLLVMCore.a is still the library name. I'd be interested in others' opinions about whether we should rename this as well (I think we should, just not sure what it might break) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/IR/Constants.cpp
|