cddc3e03e4ec99c0268c03a126195173e519ed58 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 (cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383) Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
0c7f116bb6950ef819323d855415b2f2b0aad987 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
59d3ae6cdc4316ad338cd848251f33a236ccb36c |
|
15-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add addrspacecast instruction. Patch by Michele Scandale! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
896a885f215d8e3e2835b92274319771d358f313 |
|
04-Nov-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix another constant folding address space place I missed. This fixes an assertion failure with a different sized address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
2334b0e8023bc382585a08386510cf29b3d541a6 |
|
18-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Fix a constant folding address space place I missed. If address space 0 was smaller than the address space in a constant inttoptr/ptrtoint pair, the wrong mask size would be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
180df81c8f2a30abda712a0a99149c6b9a4241aa |
|
12-Sep-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Move variable under condition where it is used git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
80f495aab0b1103b880196191af56f1d1c473ea1 |
|
20-Aug-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Teach ConstantFolding about pointer address spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
89fa38e15c32318c9106a716d3651625927c11dc |
|
13-Aug-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Slightly simplify code with helper functions e.g. Use Ty->getPointerElementType() instead of cast<PointerType>(Ty)->getElementType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b36f2f729d30b0e535ebaac9119ee65f4214ea1d |
|
13-Aug-2013 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
Add some braces, and spaces around operators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
eb733d2a1b8683f5cb3558160cb03a442f46e46e |
|
19-Apr-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFolding: ComputeMaskedBits wants the scalar size for vectors. Fixes PR15791. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.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/Analysis/ConstantFolding.cpp
|
616025007abbb0fb53fe53ef2cac81907668c2f0 |
|
26-Feb-2013 |
Michael Ilseman <milseman@apple.com> |
Constant fold vector bitcasts of halves similarly to how floats and doubles are folded. Test case included. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4ffec108a927606c51ea6fe1f3a13863d50d1c48 |
|
21-Feb-2013 |
Chad Rosier <mcrosier@apple.com> |
Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9d90163bc31b71bb20b4423f3254544134d31ea2 |
|
14-Feb-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Teach the DataLayout aware constant folder to be much more aggressive towards 'and' instructions. This is a pattern that shows up a lot in ubsan binaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ec643abe6903284fc9ae7b6d9ae5e0b4ad40ad28 |
|
07-Feb-2013 |
Owen Anderson <resistor@mac.com> |
Conditionalize constant folding of math intrinsics on the availability of an implementation on the host. This is a little bit unfortunate, but until someone decides to implement a full libm for APFloat, we don't have a better way to get this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
42258e0ea8781dd29cae4b1a6eb54d8c70dcea0b |
|
06-Feb-2013 |
Owen Anderson <resistor@mac.com> |
Signficantly generalize our ability to constant fold floating point intrinsics, including ones on half types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
faf601ee936a440027447fa11ef400cf53bc1acf |
|
05-Feb-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFolding: Fix a crash when encoutering a truncating inttoptr. This was introduced in r173293. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
cc00cc7e0427ab96a049703dd7b941eccdd4e7bd |
|
03-Feb-2013 |
Nuno Lopes <nunoplopes@sapo.pt> |
use GEP::accumulateConstantOffset() to replace custom written code to compute GEP offset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e5742464895b7f1fcc6a5b968b72f6ec66a1fd44 |
|
24-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFolding: Add a missing folding that leads to a miscompile. We use constant folding to see if an intrinsic evaluates to the same value as a constant that we know. If we don't take the undefinedness into account we get a value that doesn't match the actual implementation, and miscompiled code. This was uncovered by Chandler's simplifycfg changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1094b41c7b26089025822c5705b5c771f9b8cda4 |
|
23-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFolding: Tweak r173289, it should evaluate in the intptr type, not the index type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b4d201ec544bbd3aec5e9feaec44df43b6b4bb6c |
|
23-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
ConstantFolding: Evaluate GEP indices in the index type. This fixes some edge cases that we would get wrong with uint64_ts. PR14986. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.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/Analysis/ConstantFolding.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/Analysis/ConstantFolding.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/Analysis/ConstantFolding.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
562b1d883f304e52b237e0af2ff7e4a9e02100cd |
|
08-Nov-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
llvm/ConstantFolding.cpp: Make ReadDataFromGlobal() and FoldReinterpretLoadFromConstPtr() Big-endian-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
db2b2852256aba368cf6e75e049773768d159890 |
|
05-Nov-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
ConstantFolding.cpp: Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
426c2bf5cdd2173e4a33aea8cb92cf684a724f4b |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the majority of the next patch in the address space series: r165941: Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. Despite this commit log, this change primarily changed stuff outside of VMCore, and those changes do not carry any tests for correctness (or even plausibility), and we have consistently found questionable or flat out incorrect cases in these changes. Most of them are probably correct, but we need to devise a system that makes it more clear when we have handled the address space concerns correctly, and ideally each pass that gets updated would receive an accompanying test case that exercises that pass specificaly w.r.t. alternate address spaces. However, from this commit, I have retained the new C API entry points. Those were an orthogonal change that probably should have been split apart, but they seem entirely good. In several places the changes were very obvious cleanups with no actual multiple address space code added; these I have not reverted when I spotted them. In a few other places there were merge conflicts due to a cleaner solution being implemented later, often not using address spaces at all. In those cases, I've preserved the new code which isn't address space dependent. This is part of my ongoing effort to clean out the partial address space code which carries high risk and low test coverage, and not likely to be finished before the 3.2 release looms closer. Duncan and I would both like to see the above issues addressed before we return to these changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ece6c6bb6329748b92403c06ac87f45c43485911 |
|
01-Nov-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert the series of commits starting with r166578 which introduced the getIntPtrType support for multiple address spaces via a pointer type, and also introduced a crasher bug in the constant folder reported in PR14233. These commits also contained several problems that should really be addressed before they are re-committed. I have avoided reverting various cleanups to the DataLayout APIs that are reasonable to have moving forward in order to reduce the amount of churn, and minimize the number of commits that were reverted. I've also manually updated merge conflicts and manually arranged for the getIntPtrType function to stay in DataLayout and to be defined in a plausible way after this revert. Thanks to Duncan for working through this exact strategy with me, and Nick Lewycky for tracking down the really annoying crasher this triggered. (Test case to follow in its own commit.) After discussing with Duncan extensively, and based on a note from Micah, I'm going to continue to back out some more of the more problematic patches in this series in order to ensure we go into the LLVM 3.2 branch with a reasonable story here. I'll send a note to llvmdev explaining what's going on and why. Summary of reverted revisions: r166634: Fix a compiler warning with an unused variable. r166607: Add some cleanup to the DataLayout changes requested by Chandler. r166596: Revert "Back out r166591, not sure why this made it through since I cancelled the command. Bleh, sorry about this! r166591: Delete a directory that wasn't supposed to be checked in yet. r166578: Add in support for getIntPtrType to get the pointer type based on the address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b52fb876171e3670e7307fda4459ca005d49d9f5 |
|
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add some cleanup to the DataLayout changes requested by Chandler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
aa76e9e2cf50af190de90bc778b7f7e42ef9ceff |
|
24-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in support for getIntPtrType to get the pointer type based on the address space. This checkin also adds in some tests that utilize these paths and updates some of the clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
2c39b15073db81d93bb629303915b7d7e5d088dc |
|
15-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
fb384d61c78b60787ed65475d8403aee65023962 |
|
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Revert 165732 for further review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f3840d2c16a4ec4c879a8ded402835746de380f8 |
|
11-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5177b3a8c48adec2acf284fcb8e00775a705a7e2 |
|
06-Sep-2012 |
Roman Divacky <rdivacky@freebsd.org> |
Dont cast away const needlessly. Found by gcc48 -Wcast-qual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
97baaeaeb22e7336590b8745bd181425ca410cb5 |
|
30-Jul-2012 |
Nadav Rotem <nadav.rotem@intel.com> |
When constant folding GEP expressions, keep the address space information of pointers. Together with Ran Chachick <ran.chachick@intel.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f2124cc6c1d4e675526e87bcc9fccd3ef4664dcb |
|
25-Jul-2012 |
Duncan Sands <baldrick@free.fr> |
When folding a load from a global constant, if the load started in the middle of an array element (rather than at the beginning of the element) and extended into the next element, then the load from the second element was being handled wrong due to incorrect updating of the notion of which byte to load next. This fixes PR13442. Thanks to Chris Smowton for reporting the problem, analyzing it and providing a fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
03e091f0b5f43beee12170efc00bbab86ffeb0dc |
|
27-Apr-2012 |
Dan Gohman <gohman@apple.com> |
Reapply r155682, making constant folding more consistent, with a fix to work properly with how the code handles all-undef PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
d213ee764341b5bf6664469a5404fe19c9732828 |
|
27-Apr-2012 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Revert r155682, "Use ConstantExpr::getExtractElement when constant-folding vectors" It broke stage2 build. stage1/clang sometimes crashed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
97b44f9b8026fce47c1c882347f88af91c6e74c1 |
|
27-Apr-2012 |
Dan Gohman <gohman@apple.com> |
Use ConstantExpr::getExtractElement when constant-folding vectors instead of getAggregateElement. This has the advantage of being more consistent and allowing higher-level constant folding to procede even if an inner extract element cannot be folded. Make ConstantFoldInstruction call ConstantFoldConstantExpression on the instruction's operands, making it more consistent with ConstantFoldConstantExpression itself. This makes sure that ConstantExprs get TargetData-aware folding before being handed off as operands for further folding. This causes more expressions to be folded, but due to a known shortcoming in constant folding, this currently has the side effect of stripping a few more nuw and inbounds flags in the non-targetdata side of constant-fold-gep.ll. This is mostly harmless. This fixes rdar://11324230. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7362ac7f8cc803708187fd6029de9f8f62ff2ed2 |
|
24-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a crash on valid (if UB) bitcode that is produced for some global constants in C++11 mode. I have no idea why it required such particular circumstances to get here, the code seems clearly to rely upon unchecked assumptions. Specifically, when we decide to form an index into a struct type, we may have gone through (at least one) zero-length array indexing round, which would have left the offset un-adjusted, and thus not necessarily valid for use when indexing the struct type. This is just an canonicalization step, so the correct thing is to refuse to canonicalize nonsensical GEPs of this form. Implemented, and test case added. Fixes PR12642. Pair debugged and coded with Richard Smith. =] I credit him with most of the debugging, and preventing me from writing the wrong code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
858143816d43e58b17bfd11cb1b57afbd7f0f893 |
|
07-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7302d80490feabfc8a01bee0fa698aab55169544 |
|
06-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
Remove some dead code and tidy things up now that vectors use ConstantDataVector instead of always using ConstantVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
18c7f80b3e83ab584bd8572695a3cde8bafd9d3c |
|
05-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
reapply the patches reverted in r149470 that reenable ConstantDataArray, but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
91766fe066efe6e0969ba805a2e3726a70ed34a3 |
|
01-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert Chris' commits up to r149348 that started causing VMCoreTests unit test to fail. These are: r149348 r149351 r149352 r149354 r149356 r149357 r149361 r149362 r149364 r149365 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3ef9cfef13d7c7208b98b2d9995c3df6dcfe0d99 |
|
31-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Change ConstantArray::get to form a ConstantDataArray when possible, kicking in the big win of ConstantDataArray. As part of this, change the implementation of GetConstantStringInfo in ValueTracking to work with ConstantDataArray (and not ConstantArray) making it dramatically, amazingly, more efficient in the process and renaming it to getConstantStringInfo. This keeps around a GetConstantStringInfo entrypoint that (grossly) forwards to getConstantStringInfo and constructs the std::string required, but existing clients should move over to getConstantStringInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
04594aeffa3360882eb09a888a0970321b987b16 |
|
28-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add r149110 back with a fix for when the vector and the int have the same width. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
41cedd740d3cd66e12cb0f0a4a08f3365ca90df8 |
|
27-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert r149110 and add a testcase that was crashing since that revision. Unfortunately I also had to disable constant-pool-sharing.ll the code it tests has been updated to use the IL logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f983da030e8295ae0f9a74d1185f999485f792b3 |
|
27-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
enhance constant folding to be able to constant fold bitcast of ConstantVector's to integer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6b0dc92043ab1f63d78b8796098575e1d777b701 |
|
26-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
progress making the world safe to ConstantDataVector. While we're at it, allow PatternMatch's "neg" pattern to match integer vector negations, and enhance ComputeNumSigned bits to handle shl of vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a1f00f4d488eb5daff52faaf99c62ee652fd3b85 |
|
25-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
use Constant::getAggregateElement to simplify a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
0f193b8a6846dab25323788638e760ae03b7cd87 |
|
25-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Use the right method to get the # elements in a CDS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a97ddd0cffb9a9eb1313343fd49097c9057a5850 |
|
24-Jan-2012 |
Chris Lattner <sabre@nondot.org> |
Split the interesting bits of ConstantFoldLoadThroughGEPConstantExpr out into a new ConstantFoldLoadThroughGEPIndices (more useful) function and rewrite it to be simpler, more efficient, and to handle the new ConstantDataSequential type. Enhance ConstantFoldLoadFromConstPtr to handle ConstantDataSequential. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 |
|
20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ccbf1e36d34c2d66600748bdd8767dc122629a58 |
|
12-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch llvm.cttz and llvm.ctlz to accept a second i1 parameter which indicates whether the intrinsic has a defined result for a first argument equal to zero. This will eventually allow these intrinsics to accurately model the semantics of GCC's __builtin_ctz and __builtin_clz and the X86 instructions (prior to AVX) which implement them. This patch merely sets the stage by extending the signature of these intrinsics and establishing auto-upgrade logic so that the old spelling still works both in IR and in bitcode. The upgrade logic preserves the existing (inefficient) semantics. This patch should not change any behavior. CodeGen isn't updated because it can use the existing semantics regardless of the flag's value. Note that this will be followed by API updates to Clang and DragonEgg. Reviewed by Nick Lewycky! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1608769abeb1430dc34f31ffac0d9850f99ae36a |
|
05-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for vectors of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
24fbf2bf161b20b13d0a218345bdcd092bdd56f8 |
|
03-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Add support for constant folding the pow intrinsic. rdar://10514247 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
21646e8becaa13cb813490edcd7fe9150b11f88e |
|
02-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Abuse of mass replace isn't warranted even when the build is failing. Thanks for the suggestion, Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ca3043101f611e4391b9a81d474bcf5023bcd43d |
|
01-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix build by not assuming TLI is guaranteed. Will have to track down cases where TLI isn't being passed to ensure we don't miss opportunities to fold calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
aebc3aae3fd3222c2588e9ad6812bd6cd370a385 |
|
01-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Prevent library calls from being folded if -fno-builtin has been specified. rdar://10500969 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
618c1dbd293d15ee19f61b1156ab8086ad28311a |
|
01-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Propagate TargetLibraryInfo throughout ConstantFolding.cpp and InstructionSimplify.cpp. Other fixups as needed. Part of rdar://10500969 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
89879ec76b5d81b0cc82e9f402dfe7c4cc63b0d6 |
|
29-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Fixes following the CR by Chris and Duncan: Optimize chained bitcasts of the form A->B->A. Undo r138722 and change isEliminableCastPair to allow this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
be6ceb6ebcfb48e09ffab297c1537c87383f0ce9 |
|
28-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Bitcasts are transitive. Bitcast-Bitcast-X becomes Bitcast-X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4c7c0f23533565c7e2ddf71e01bf50f2aede5f1b |
|
24-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Implement Constant::isAllOnesValue(). Fix ConstantFolding to use the new api. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
acc8f2d938dbf00c79c34f4541a5a05662964797 |
|
23-Aug-2011 |
Eric Christopher <echristo@apple.com> |
Revert "Address Duncan's CR request:" This reverts commit 20a05be15ea5271ab6185b83200fa88263362400. (svn rev 138340) Conflicts: test/Transforms/InstCombine/bitcast.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
20a05be15ea5271ab6185b83200fa88263362400 |
|
23-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Address Duncan's CR request: 1. Cleanup the tests in ConstantFolding.cpp 2. Implement isAllOnes for Constant, ConstantFP, ConstantVector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1c9fe0361b3f9f5c814ce761b97ecd11637a1d7d |
|
20-Aug-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add constant folding support for bitcasts of splat vectors to integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a9203109f4ac95aa7e9624f2838e3d89623ec902 |
|
25-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert GetElementPtrInst to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
dab3d29605a5c83db41b28176273ef55961120c1 |
|
21-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert ConstantExpr::getGetElementPtr and ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
8fbbb3980755d74539a0aed02bc18842ed2bd18d |
|
19-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert TargetData::getIndexedOffset to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1d2f569c3428d70d0cf690c9adb459ad4a3ecff2 |
|
19-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
fc6d3a49867cd38954dc40936a88f1907252c6d2 |
|
13-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
83471853b1d5a9efe6b9e7565c457fc901f84926 |
|
23-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert "revert 133714" This reverts commit e8e00f5efb4a22238f2407bf813de4606f30c5aa. The cmake build on OS X is still broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e8e00f5efb4a22238f2407bf813de4606f30c5aa |
|
23-Jun-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
revert 133714 It broke the build worse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
cd3448658125aaf88b32f226d84b53a44e2ba0ab |
|
23-Jun-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
133713 broke the build, revert it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5417eed2014a2fb46057bdd9931e878968b810dc |
|
23-Jun-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Support: make floating-exception header private It has only one user. This eliminates the last include of config.h from the public headers -- ideally, config.h shouldn't even be installed by `make install` anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b065b06c12dba6001b8140df2744d0c856ef6ea1 |
|
20-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Revamp the "ConstantStruct::get" methods. Previously, these were scattered all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
805fa97a0f5ff61624855da37d4881708fb8f0fb |
|
23-May-2011 |
Chris Lattner <sabre@nondot.org> |
implement PR9315, constant folding exp2 in terms of pow (since hosts without C99 runtimes don't have exp2). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
562b84b3aea359d1f918184e355da82bf05eb290 |
|
11-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Don't include Operator.h from InstrTypes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6208610fd602ebdb18bb793152899573d0b2b7ab |
|
27-Mar-2011 |
Frits van Bommel <fvbommel@gmail.com> |
Constant folding support for calls to umul.with.overflow(), basically identical to the smul.with.overflow() code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
2ca5c8644e6c35b3a7910a576ed89cddb7b82c3b |
|
15-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
convert ConstantVector::get to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
75831904220042260c4faece8507a2807acba47f |
|
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
revert my ConstantVector patch, it seems to have made the llvm-gcc builders unhappy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
283c8caccd093f8e1d4f0bdd01ac240b4edbd20a |
|
14-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Switch ConstantVector::get to use ArrayRef instead of a pointer+size idiom. Change various clients to simplify their code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5d43ff4e7ea30eaf5a1c417f0ec528900f5c83f2 |
|
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Simplify test, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6475d9434ff3e981160f85d3f1aa07c9e0ace6f2 |
|
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
When loading from a constant, fold inttoptr if the integer type and the resulting pointer type both have the same size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
bd1801b5553c8be3960255a92738464e0010b6f6 |
|
24-Jan-2011 |
Dan Gohman <gohman@apple.com> |
Give GetUnderlyingObject a TargetData, to keep it in sync with BasicAA's DecomposeGEPExpression, which recently began using a TargetData. This fixes PR8968, though the testcase is awkward to reduce. Also, update several off GetUnderlyingObject's users which happen to have a TargetData handy to pass it in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
156eb0a569a1ebac86ad8438645f690d8a3894c4 |
|
16-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
fix PR8983, a broken assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
15ed90c859e5df11112c614c83d0d2e786d4c73a |
|
11-Jan-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Teach constant folding to perform conversions from constant floating point values to their integer representation through the SSE intrinsic calls. This is the last part of a README.txt entry for which I have real world examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123206 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f4db877cff62340aaf9f29d3994562ae1cee8d72 |
|
10-Jan-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Cleanup some of the constant folding code to consistently test intrinsic IDs when available rather than using a mixture of IDs and textual name comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f1cadf28991b2643128bfe38990ff235f2cb1491 |
|
06-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
use isNullValue() to simplify code, add an assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
8cd4efb6a5e51b4e77039c17338f290ca3a8ee92 |
|
06-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
implement constant folding support for an exotic constant expr: ret i64 ptrtoint (i8* getelementptr ([1000 x i8]* @X, i64 1, i64 sub (i64 0, i64 ptrtoint ([1000 x i8]* @X to i64))) to i64) to "ret i64 1000". This allows us to correctly compute the trip count on a loop in PR8883, which occurs with std::fill on a char array. This allows us to transform it into a memset with a constant size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
8e68c3873549ca31533e2e3e40dda3a43cb79566 |
|
23-Dec-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Change all self assignments X=X to (void)X, so that we can turn on a new gcc warning that complains on self-assignments and self-initializations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5034dd318a9dfa0dc45a3ac01e58e60f2aa2498d |
|
15-Dec-2010 |
Dan Gohman <gohman@apple.com> |
Move Value::getUnderlyingObject to be a standalone function so that it can live in Analysis instead of VMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 |
|
07-Dec-2010 |
Jay Foad <jay.foad@gmail.com> |
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3ee0af35842999c1781052fe74fdcb19997de950 |
|
29-Nov-2010 |
Frits van Bommel <fvbommel@gmail.com> |
Teach ConstantFoldInstruction() how to fold insertvalue and extractvalue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1f6efa3996dd1929fbc129203ce5009b620e6969 |
|
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b9b369fa9983843c4ed77b3a35b6e9b7933955bb |
|
23-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Clarify that constant folding of instructions applies when all operands are constant. There was in fact one exception to this (phi nodes) - so remove that exception (InstructionSimplify handles this so there should be no loss). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e58391073f6e17cd1024f737618a6f6b8d1323ce |
|
21-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c1da204c433459713cbf4c62f0addf458e6b4b9f |
|
21-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
apply Dan's fix for PR8268 which allows constant folding to handle indexes over zero sized elements. This allows us to compile: #include <string> void foo() { std::string s; } into an empty function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119933 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c0362d5c6e0066c741bce056a65d8b4c026de19f |
|
14-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Boost the power of phi node constant folding slightly: if all operands are the phi node itself or undef, then return undef. This logic already existed at a higher level so in practice it shouldn't make the slightest difference. Note that this code could be replaced by a call to PN->hasConstantValue(). However since we bail out the moment we see a non-constant operand, it is more efficient to have a specialized version of that logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
eafc5cb80d58cb9447623a557be4d4f55f42fbc3 |
|
14-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
add uadd_ov/usub_ov to apint, consolidate constant folding logic to use the new APInt methods. Among other things this implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold which comes from "clang -ftrapv", originally brought to my attention from PR8221. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1f386c4ce1983c448320aecca8d3cd27d1497867 |
|
27-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't try to constant fold libm functions with non-finite arguments. Usually we wouldn't do this anyway because llvm_fenv_testexcept would return an exception, but we have seen some cases where neither errno nor fenv detect an exception on arm-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
38cb1cdfb7308e82ed00985427f78d11d817d88a |
|
17-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't include <fenv.h> now that we have llvm/System/FEnv.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3f2f21e640682c604d9322ba0708e122d1fcf5ee |
|
17-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Attempt to support platforms which don't have fenv.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
8ee731f2ce62d936f81c12283a192375a87f323a |
|
17-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Fix the folding of floating-point math library calls, like sin(infinity), so that it detects errors on platforms where libm doesn't set errno. It's still subject to host libm details though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a6aac4c5bc22bb10c7adb11eee3f82c703af7002 |
|
16-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
eliminate CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
490b8f5d64823d998fc12ad3a91ecacd82c1901e |
|
12-Jul-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Add parentheses around an || to correct the logic. Also silences a GCC warning that was actually useful here. Chris, please double check that this is the correct interpretation. I was pretty sure, and ran it by Nick as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
eae2895120500d06bf6de9725efeeff498f60385 |
|
12-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR7429, a crash turning a load from a string into a float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
274fefdd968c594983e19e9debc0ba9674d01991 |
|
07-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
conditionalize by CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e368b460a206fafa0d31d5d059b1779b94f7df8c |
|
18-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate unnecessary uses of getZExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
551754c4958086cc6910da7c950f2875e212f5cf |
|
17-Apr-2010 |
Eric Christopher <echristo@apple.com> |
Revert 101465, it broke internal OpenGL testing. Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4ec2258ffb495d7ce00177e447740ef1123a27db |
|
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101434 with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
607a7ab3da72a2eb53553a520507cbb8068dd1d8 |
|
16-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
2ff961f66816daab8bbc58a19025161d969821c2 |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
reapply r101364, which has been backed out in r101368 with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9ee17208115482441953127615231c59a2f4d052 |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
165dac08d1bb8428b32a5f39cdd3dbee2888987f |
|
15-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ce800511701135ed86845b451693a248c83a7973 |
|
12-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
faa75f6e47350f491a44d5e8773acd9457185d51 |
|
19-Mar-2010 |
Anton Korobeynikov <asl@math.spbu.ru> |
FP16 constfolding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
40b037ef611efc5c43ffc43a911d0eb57e0d444d |
|
18-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
890edda7c22dd8525f9fe44085cfd7080e67dfee |
|
12-Mar-2010 |
Duncan Sands <baldrick@free.fr> |
When constant folding GEP of GEP, do not crash if an index of the inner GEP is not a ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
0891d752a68a25025ffc3339aab1f0ad3221b0ed |
|
10-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Constant-fold GEP-of-GEP into a single GEP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b80a2a686fe76496d71397f8bdda394d5718ab01 |
|
23-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Remove the code which constant-folded ptrtoint(inttoptr(x)+c) to getelementptr. Despite only doing so in the case where x is a known array object and c can be converted to an index within range, this could still be invalid if c is actually the address of an object allocated outside of LLVM. Also, SCEVExpander, the original motivation for this code, has since been improved to avoid inttoptr+ptroint in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
0e488b3d1c9293bbf2d64d0ecc4d6339f9100351 |
|
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Canonicalize ConstantInts to the right operand of commutative operators. The test difference is just due to the multiplication operands being commuted (and thus requiring a more elaborate match). In optimized code, that expression would be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
95056e4808d2e3730983b4d93c21737a12cf7fee |
|
22-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Minor formatting cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9ee7123ab462d97a2b242280e9bf0b47883531cb |
|
17-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fold bswap(undef) to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
|
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b0bc6c361da9009e8414efde317d9bbff755f6c0 |
|
15-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
baf0c67988feec5b7698f89dce499ddb7d0c3c42 |
|
08-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4f8eea82d8967cffa85b9df6c9255717b059009e |
|
01-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Generalize target-independent folding rules for sizeof to handle more cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding. Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines. Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding. And add a bunch of testcases for this new functionality, and a bunch of related existing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b31189f26297fe30214da3e8d14a4575d5fdd262 |
|
08-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR5978 by peeling the loop so that we avoid shifting the result int by 8 for the first byte. While normally harmless, if the result is smaller than a byte, this shift is invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
79fa3cf451a74dd1cec0be2d77d7ea9737dffc69 |
|
02-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
constant fold nasty constant expressions formed by llvm-gcc, wrapping up PR3351. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
44a7a380aa9fbb303f57f4f8269062b7b56be980 |
|
04-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR5551 by not ignoring the top level constantexpr when folding a load from constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e568fa2d29c58aaedcaa832f805949d5e4371b4b |
|
03-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR5673 by being more careful about pointers to functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
fac554a1317bf32daf5698740670025ae14e6bcc |
|
29-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Teach ConstantFolding to do a better job when folding gep(bitcast). This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
01b97dd01eec1197d79fceb7229f5ec233994de3 |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Make ConstantFoldConstantExpression recursively visit the entire ConstantExpr, not just the top-level operator. This allows it to fold many more constants. Also, make GlobalOpt call ConstantFoldConstantExpression on GlobalVariable initializers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
8f73deaa8732a556046bf4ac6207be55972e3b74 |
|
10-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
fix ConstantFoldCompareInstOperands to take the LHS/RHS as individual operands instead of taking a temporary array git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7b550ccfc5a3346c17e0390a59e2d6d19bc52705 |
|
06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
remove a bunch of extraneous LLVMContext arguments from various APIs, addressing PR5325. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
93798daa3ecbfb29624052d3e54d2404ab65897a |
|
25-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Teach FoldBitCast to be able to handle bitcasts from (e.g.) i128 -> <4 x float>. This allows us to simplify this: union vec2d { double e[2]; double v __attribute__((vector_size(16))); }; typedef union vec2d vec2d; static vec2d a={{1,2}}, b={{3,4}}; vec2d foo () { return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v }; } down to: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double 1.600000e+01, 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double 2.200000e+01, 1 ; <%0> [#uses=1] ret %0 %mrv6 } instead of: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 0), 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 1), 1 ; <%0> [#uses=1] ret %0 %mrv6 } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6333c3959b7e3e43930ab523f0657791e9eb5d48 |
|
25-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
move FoldBitCast earlier in the file, and use it instead of ConstantExpr::getBitCast in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ea9d57bc9a8eb6aaa07b250cc59774d1a1981221 |
|
25-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
refactor FoldBitCast to reduce nesting and to always return a constantexpr instead of returning null on failure. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c7b1382e351249774be63bd73839e8a0671635e1 |
|
24-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
various cleanups suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c5af649758ac8c6ffb896d7d5c570640a9fa1dee |
|
24-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR5287, a serious regression from my previous patches. Thanks to Duncan for the nice tiny testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
17f0cd3cc1432231f2bc5601e7e463986a59d817 |
|
23-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
teach libanalysis to simplify vector loads with bitcast sources. This implements something out of Target/README.txt producing: _foo: ## @foo movl 4(%esp), %eax movapd LCPI1_0, %xmm0 movapd %xmm0, (%eax) ret $4 instead of: _foo: ## @foo movl 4(%esp), %eax movapd _b, %xmm0 mulpd LCPI1_0, %xmm0 addpd _a, %xmm0 movapd %xmm0, (%eax) ret $4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
739208a790398cf1f9da05149c768371e48781e8 |
|
23-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32 bytes (i256). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
fe8c7c807c6f815561bc2bdddfd330b05dbdfc93 |
|
23-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
teach libanalysis to fold int and fp loads from almost arbitrary non-type-safe constant initializers. This sort of thing happens quite a bit for 4-byte loads out of string constants, unions, bitfields, and an interesting endianness check from sqlite, which is something like this: const int sqlite3one = 1; # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) all of these macros now constant fold away. This implements PR3152 and is based on a patch started by Eli, but heavily modified and extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e00c43fc35d64b2ee8d2b4692c02375d2d7b4aa4 |
|
22-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
move another load optimization from instcombine -> libanalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
62d327e241f59735eed836e98c8f11ffaa6cf6f8 |
|
22-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
move 'loading i32 from string' optimization from instcombine to libanalysis. Instcombine shrinking... does this even make sense??? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
878e4946700824954d7eb7f3ff660353db8e0d17 |
|
22-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Move some constant folding logic for loads out of instcombine into Analysis/ConstantFolding.cpp. This doesn't change the behavior of instcombine but makes other clients of ConstantFoldInstruction able to handle loads. This was partially extracted from Eli's patch in PR3152. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1614e50d9f6d48a38e4dafb4b1a51fd4b37614f3 |
|
06-Oct-2009 |
Evan Phoenix <evan@fallingsnow.net> |
Extend ConstantFolding to understand signed overflow variants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c6f69e94fa46f585b59bb9d7ace3224b0e638c95 |
|
05-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unnnecessary LLVMContext argument in ConstantFoldLoadThroughGEPConstantExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e65cd40ab99c3bd43dc997873e500643d012bbad |
|
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
teach the optimizer how to constant fold uadd/usub intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
d0806a1519f3bc450d2dea3e6f22db73fc797e4c |
|
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
simplify this code a bunch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
68a0603dc5d3d79cd4de2195e950af26c3380cd7 |
|
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
58665d47aea69875c433fb039c8f10106abc1cee |
|
16-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3bfbc4587a7e79f08f8c126a9e62c3475fb90f8b |
|
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Teach lib/VMCore/ConstantFold.cpp how to set the inbounds keyword and how to fold notionally-out-of-bounds array getelementptr indices instead of just doing these in lib/Analysis/ConstantFolding.cpp, because it can be done in a fairly general way without TargetData, and because not all constants are visited by lib/Analysis/ConstantFolding.cpp. This enables more constant folding. Also, set the "inbounds" flag when the getelementptr indices are one-past-the-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
83e3c4f9d796a5da223a3ebd5d4ba985c7ecc39d |
|
11-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Give these files top-level comments that describe the current code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6e7ad958683f34bf6c014c88fef723e5a2d741be |
|
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Revert 80959. It isn't sufficient to solve the full problem. And it introduced regressions in the Ocaml bindings tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e56a94ef91009ddb8d8b68783ff1650bcad3b326 |
|
04-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Remove the API for creating ConstantExprs with the nsw, nuw, inbounds, and exact flags. Because ConstantExprs are uniqued, creating an expression with this flag causes all expressions with the same operands to have the same flag, which may not be safe. Add, sub, mul, and sdiv ConstantExprs are usually folded anyway, so the main interesting flag here is inbounds, and the constant folder already knows how to set the inbounds flag automatically in most cases, so there isn't an urgent need for the API support. This can be reconsidered in the future, but for now just removing these API bits eliminates a source of potential trouble with little downside. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f19f9347b85279100f7d549154e37b6d726c3c94 |
|
02-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
fix PR4848 an infinite loop when indexing down through a recursive gep and we get the original pointer type. This doesn't mean that we're at the first pointer being indexed. Correct the predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7178010a168a378df5d9be95956093a3e5f963fd |
|
21-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Don't assume that the operand of an inttoptr is an pointer-sized integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
cda9706cb74a65d2feb2175613cb0fe46acc5aa2 |
|
21-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Change getelementptr folding to use APInt instead of uint64_t for offset computations. This fixes a truncation bug on targets that don't have 64-bit pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4c0d5d5db876b0628bdf6a2174263a1c0a9130e2 |
|
20-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Various comment and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3d01334e6fa5caba1361d088fabf728c64b23c58 |
|
20-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Fix a bug in the over-index constant folding. When over-indexing an array member of a struct, it's possible to land in an arbitrary position inside that struct, such that attempting to find further getelementptr indices will fail. In such cases, folding cannot be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
de0e587e63f71afb2ac53c9880c262089fe798bb |
|
19-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Canonicalize indices in a constantexpr GEP. If Indices exceed the static extents of the static array type, it causes GlobalOpt and other passes to be more conservative. This canonicalization also allows the constant folder to add "inbounds" to GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a7235ea7245028a0723e8ab7fd011386b3900777 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are metadata related, which I'm waiting on to avoid conflicting with Devang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
debcb01b0f0a15f568ca69e8f288fade4bfc7297 |
|
30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move types back to the 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
baf3c404409d5e47b13984a7f95bfbd6d1f2e79e |
|
29-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantExpr to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
af7ec975870f92245f1f1484ac80a1e2db6a0afa |
|
28-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Return ConstantVector to 2.5 API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6f83c9c6ef0e7f79825a0a8f22941815e4b684c7 |
|
27-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move ConstantFP construction back to the 2.5-ish API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f0443c1eb44d737d9bd78962932fc80f74c6113c |
|
26-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove Value::getNameLen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
eed707b1e6097aac2bb6b3d47271f6300ace7f2e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert the ConstantInt constructors back to their 2.5 forms where possible, thanks to contexts-on-types. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7f6aa2b162e5daaf7b9ccf05d749597d3d7cf460 |
|
08-Jul-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove the vicmp and vfcmp instructions. Because we never had a release with these instructions, no autoupgrade or backwards compatibility support is provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
07cf79ef537caff6d39145f190a28a336e629b6f |
|
07-Jul-2009 |
Owen Anderson <resistor@mac.com> |
"LLVMContext* " --> "LLVMContext *" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
508955156a25a9abc470a29e1760aa176d341cf9 |
|
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Thread LLVMContext through the constant folding APIs, which touches a lot of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6de29f8d960505421d61c80cdb738e16720b6c0e |
|
16-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Support vector casts in more places, fixing a variety of assertion failures. To support this, add some utility functions to Type to help support vector/scalar-independent code. Change ConstantInt::get and ConstantFP::get to support vector types, and add an overload to ConstantInt::get that uses a static IntegerType type, for convenience. Introduce a new getConstant method for ScalarEvolution, to simplify common use cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7714285efd2a7f4e503f0f600667193e63ee6d08 |
|
02-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Change ConstantFoldConstantExpression to accept a null TargetData pointer. The only thing it's used for are calls to ConstantFoldCompareInstOperands and ConstantFoldInstOperands, which both already accept a null TargetData pointer. This makes ConstantFoldConstantExpression easier to use in clients where TargetData is optional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e3e51c0038bd6ba2add82e2246e97edec0ab2204 |
|
21-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Use v.data() instead of &v[0] when SmallVector v might be empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
777d2306b36816a53bc1ae1244c0dc7d998ae691 |
|
09-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename PaddedSize to AllocSize, in the hope that this will make it more obvious what it represents, and stop it being confused with the StoreSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9a38e3e3991ea443e555d8060f91202a786acdd4 |
|
07-May-2009 |
Dan Gohman <gohman@apple.com> |
Revert 71165. It did more than just revert 71158 and it introduced several regressions. The problem due to 71158 is now fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5b8479c38532a28d86dea8ded09a30ff68f26912 |
|
07-May-2009 |
Bill Wendling <isanbard@gmail.com> |
Temporarily revert r71158. It was causing a failure during a full bootstrap: checking for bcopy... no checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decUtility.o] Error 1 make[4]: *** Waiting for unfinished jobs.... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511. /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. make[4]: *** [decNumber.o] Error 1 make[3]: *** [all-stage2-libdecnumber] Error 2 make[3]: *** Waiting for unfinished jobs.... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
704b6980b8d45d5b6b981850bd82634d2d91e4c4 |
|
07-May-2009 |
Dan Gohman <gohman@apple.com> |
Constant-fold ptrtoint+add+inttoptr to gep when the pointer is an array and the add is within range. This helps simplify expressions expanded by ScalarEvolutionExpander. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6f532a988e5c02fcb271fb65e9e7b83f0147d3f2 |
|
03-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
use higher level APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 |
|
12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
67e3566d8f6875e9c92d224f493023408a66227e |
|
15-Dec-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Fix whitespace in comment. Remove TODO; icmp isn't a binary operator, so this function will never deal with them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
d43390498291c475a6e277fcd5d3bbf5abd3b41e |
|
20-Nov-2008 |
Nick Lewycky <nicholas@mxc.ca> |
undef beats zero. Fix this missed optimization opportunity. Patch by Matt Elder! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
04aa2c3520c049333ca216fb794d700310c4a33d |
|
24-Oct-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Don't try to create a mask when we don't need one. Fixes a crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
81b06be055e74a3c23a1c8f17ead97f9f76335ee |
|
13-Aug-2008 |
Duncan Sands <baldrick@free.fr> |
Teach constant folding that an inttoptr of a ptrtoint can be turned into a bitcast if the integer is at least as wide as a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b5557abcf13a7b375cae683e9ec200d499645d02 |
|
25-Jul-2008 |
Nate Begeman <natebegeman@mac.com> |
Fix minor issues with VICmp/VFCmp constant expressions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
3dfd7bf5110c47e99fd0fcce96122b90f699ca3a |
|
25-May-2008 |
Nick Lewycky <nicholas@mxc.ca> |
"ret (constexpr)" can't be folded into a Constant. Add a method to Analysis/ConstantFolding to fold ConstantExpr's, then make instcombine use it to try to use targetdata to fold constant expressions on void instructions. Also extend the icmp(inttoptr, inttoptr) folding to handle the case where int size != ptr size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51559 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
785c6af9797fcf551feef70f2ecb5cd075b6e3c4 |
|
22-May-2008 |
Gabor Greif <ggreif@gmail.com> |
transform more loops to iterator form, detabify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
de2d74b213844b17eb5327fba27f21e699d3af66 |
|
22-May-2008 |
Gabor Greif <ggreif@gmail.com> |
Rewrite operand loops to use iterators. This shrinks .o file (at gcc4.0.1 -O3 x86) substantially (>500 bytes). Reason still unknown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
33e456d5f3909e0c7b96e04e5674c25a182da100 |
|
21-May-2008 |
Gabor Greif <ggreif@gmail.com> |
suppress gcc3.4.6's <no value returned> warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
76e2e4a2bc78a0ca2617e3b336081e29cb00d749 |
|
08-May-2008 |
Chris Lattner <sabre@nondot.org> |
Remove dead return. Thanks to Bill for the review! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
268e7d7a9446bb89b80472cdb7b9803f16c0191e |
|
08-May-2008 |
Chris Lattner <sabre@nondot.org> |
Add support for constant folding the 'offsetof' pattern even if the base is not zero. This fixes test/C++Frontend/2008-05-07-CrazyOffsetOf.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
02a260aa11a2e1b2c14335274d3c42ca3f3eabc0 |
|
20-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Switch to using Simplified ConstantFP::get API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f19f58a9360927f8ef50b9a029e8efb780d3d8a8 |
|
30-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
minor code cleanups, allow constant folding sinf/cosf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
fa9b80eb64127b3d9691e18537975635520e51e9 |
|
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Avoid unnecessarily casting away const, fixing a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
7f135cc802435171ab09ebd6a514db26a122b99a |
|
12-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in my previous patch, thanks to Jay Foad for pointing this out and correcting the patch! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44907 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
1afab9c1e0ae2d145ce01718aa14065393117e70 |
|
11-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Implement constant folding if vector<->vector bitcasts where the number of source/dest elements changes. This implements test/Transforms/InstCombine/bitcast-vector-fold.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
f286f6fd93d569befe6e77c94a947e6e04e95685 |
|
10-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp. Reimplement the xform in Analysis/ConstantFolding.cpp where we can use targetdata to validate that it is safe. While I'm in there, fix some const correctness issues and generalize the interface to the "operand folder". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ecc0274a54658a4ee76d783b285a0690ad760928 |
|
23-Nov-2007 |
Chris Lattner <sabre@nondot.org> |
splice some lines together, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
514ab348fddcdffa8367685dc608b2f8d5de986d |
|
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9ab7fb3ba47442d521a5bed09a27a5e8e7a786ed |
|
02-Oct-2007 |
Dale Johannesen <dalej@apple.com> |
Rewrite sqrt and powi to use anyfloat. By popular demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
317096ab3710fda0960be58804e9f80c800340f6 |
|
28-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Add sqrt and powi intrinsics for long double. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
43421b3dd70af5b70e71816521f37502c397cc65 |
|
06-Sep-2007 |
Dale Johannesen <dalej@apple.com> |
Next round of APFloat changes. Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
001f7534e0311508cc93831a595785bb177f8a18 |
|
12-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
constant fold ptrtoint(inttoptr) with target data when available. This allows us to fold the entry block of PR1602 to false instead of: br i1 icmp eq (i32 and (i32 ptrtoint (void (%struct.S*)* inttoptr (i64 1 to void (%struct.S*)*) to i32), i32 1), i32 0), label %cond_next, label %cond_true git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
a099b6c7bb574f22bc002e0b3c65c25abccca1d5 |
|
08-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
Handle functions with no name better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c5f6a1f9d61d74017d90e149728cb3d283e0a0e0 |
|
08-Aug-2007 |
Chris Lattner <sabre@nondot.org> |
significantly speed up constant folding of calls (and thus all clients that use ConstantFoldInstruction on calls) by avoiding Value::getName(). getName() constructs and returns an std::string, which does heap allocation stuff. This slightly speeds up instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6994040a952e5fb27605eb3cf29ed86c4e59cf62 |
|
04-Aug-2007 |
Chandler Carruth <chandlerc@gmail.com> |
This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future. This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
384152444d22d356f7b4090a158da4cbc1f79464 |
|
16-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Use ConstantFoldFP for folding all unary floating-point operations which may have an error, and refector out the code for binary operators into ConstantFoldBinaryFP and use it for all binary floating-point operations which may have an error. These functions still rely exclusively on errno to detect errors though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e613555fd9184414fb586e4df3d6a4c716724c66 |
|
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
The bit counting intrinsics return i32 not the operand type. This fixes last night's regression in SingleSource/UnitTests/2005-05-11-Popcount-ffs-fls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
e9391fd9b52e93717b365bdd05c471101323a4df |
|
01-Apr-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1297: Support overloaded intrinsics bswap, ctpop, cttz, ctlz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ca5183d445954a9b2a570d6bbba1bc2b00ad6442 |
|
05-Mar-2007 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e |
|
15-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1195: Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
309f87e34a12e3398932e4c2c9e3c47cad0e8f0f |
|
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
completely eliminate a temporary vector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b1919e2f08ecb37140af676fd2916f8d5ed7df3d |
|
10-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Privatize StructLayout::MemberOffsets, adding an accessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
832254e1c2387c0cbeb0a820b8315fbe85cb003a |
|
02-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Changes to support making the shift instructions be true BinaryOperators. This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
ad58eb34342f70f094008e6d08cb4ed814754e64 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Fix a minor bug in my patch yesterday that broken ConstProp/bswap.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33704 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
d917fe56926f2f80665fd154eb23ca41e9df6f67 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
elimiante a temporary vector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
03dd25ca964813c8b9fe14479443b9c21fb92c55 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Move some symbolic constant folding code out of instcombine into a place it can be used by multiple clients. This specifically allows the inliner to constant fold symbolically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5520732b24a5a321140dd79af70d321c7ff3dec9 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
move a bunch of constant folding code f rom Transforms/Utils/Local.cpp into libanalysis/ConstantFolding.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
72d88ae5447a3929c97e88f4c806213847b5d988 |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
adjust to constant folding api changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b5282dcf4745be59046f440980a1c0f0a50c9c09 |
|
15-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Constant fold llvm.powi.*. This speeds up tramp3d--v4 by 9.5% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
257cbf7a8dca9372882a7a98ec626897247aee6d |
|
07-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
remove llvm.isunordered git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
c5b206b6be61d0d933b98b6af5e22f42edd48ad1 |
|
31-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch replaces signed integer types with signless ones: 1. [US]Byte -> Int8 2. [U]Short -> Int16 3. [U]Int -> Int32 4. [U]Long -> Int64. 5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion and other methods related to signedness. In a few places this warranted identifying the signedness information from other sources. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
97af751deb9b26fd42fbcee082da9ccc4ded5b45 |
|
02-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
Unbreak VC++ build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
d6c3422e3126927840683574a658a0deada903f0 |
|
08-Nov-2006 |
Jim Laskey <jlaskey@mac.com> |
Remove redundant <cmath>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
b83eb6447ba155342598f0fabe1f08f5baa9164a |
|
20-Oct-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
5cff2677a68bf7748bbc2d680b59248448a7fc89 |
|
17-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Constant fold sqrtf git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
0b118206bf3411722707f2e5cab8fd2eedcd50d6 |
|
16-Jan-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR411: This patch is an incremental step towards supporting a flat symbol table. It de-overloads the intrinsic functions by providing type-specific intrinsics and arranging for automatically upgrading from the old overloaded name to the new non-overloaded name. Specifically: llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64 llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64 llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64 llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64 llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64 New code should not use the overloaded intrinsic names. Warnings will be emitted if they are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
6fb3bd6a658940287789198d3207b0da04c0a4e6 |
|
14-Jan-2006 |
Nate Begeman <natebegeman@mac.com> |
Add bswap intrinsics as documented in the Language Reference git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|
bd9d37026a5c17d9a51371a6a5446bf4761ee7d6 |
|
27-Oct-2005 |
John Criswell <criswell@uiuc.edu> |
Move some constant folding functions into LLVMAnalysis since they are used by Analysis and Transformation passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Analysis/ConstantFolding.cpp
|