History log of /external/llvm/lib/IR/Constants.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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