- May 29, 2014
-
-
Sebastian Pop authored
without this case we would end on an infinite recursion: the remainder is zero, so Numerator - Remainder is equal to Numerator and so we would recursively ask for the division of Numerator by Denominator. llvm-svn: 209838
-
Sebastian Pop authored
when ScalarEvolution::getElementSize returns nullptr it is safe to early return in ScalarEvolution::findArrayDimensions such that we avoid later problems when we try to divide the terms by ElementSize. llvm-svn: 209837
-
Alexey Samsonov authored
llvm-svn: 209834
-
Reid Kleckner authored
This makes it slightly harder to misuse Twines. It is still possible to refer to destroyed temporaries with the regular constructors, though. Patch by Marco Alesiani! llvm-svn: 209832
-
Adrian Prantl authored
never used again and updating the abstract variable for each inlined instance of it was questionable in the first place. llvm-svn: 209829
-
Rafael Espindola authored
llvm-svn: 209822
-
Rafael Espindola authored
This seems to match what gcc does for ppc and what every other llvm backend does. This is a fixed version of r209638. The difference is to avoid any change in behavior for functions. The logic for using constant pools for function addresseses is spread over a few places and we have to keep them in sync. llvm-svn: 209821
-
Rafael Espindola authored
This would have found the miscompile in r209638. llvm-svn: 209820
-
Rafael Espindola authored
This reverts commit r209776. It was miscompiling llvm::SelectionDAGISel::MorphNode. llvm-svn: 209817
-
Artyom Skrobov authored
llvm-svn: 209803
-
Artyom Skrobov authored
llvm-svn: 209802
-
Simon Atanasyan authored
field represents ELF section header sh_info field and does not have any sense for regular sections. Its interpretation depends on section type. llvm-svn: 209801
-
Hao Liu authored
llvm-svn: 209799
-
Hao Liu authored
llvm-svn: 209798
-
Dinesh Dwivedi authored
During loop-unroll, loop exits from the current loop may end up in in different outer loop. This requires to re-form LCSSA recursively for one level down from the outer most loop where loop exits are landed during unroll. This fixes PR18861. Differential Revision: http://reviews.llvm.org/D2976 llvm-svn: 209796
-
Michael J. Spencer authored
llvm-svn: 209792
-
Michael J. Spencer authored
This pass is disabled by default. Use -combine-loads to enable in -O[1-3] Differential revision: http://reviews.llvm.org/D3580 llvm-svn: 209791
-
Alexey Samsonov authored
Clang knows about the sanitizer blacklist and it makes no sense to add global to the list of llvm.asan.dynamically_initialized_globals if it will be blacklisted in the instrumentation pass anyway. Instead, we should do as much blacklisting as possible (if not all) in the frontend. llvm-svn: 209790
-
Michael J. Spencer authored
An address only use of an extract element of a load can be simplified to a load. Without this the result of the extract element is spilled to the stack so that an address is available. llvm-svn: 209788
-
Matt Arsenault authored
These are confusing enough since the order swaps, so give them more useful names. llvm-svn: 209787
-
Alexey Samsonov authored
llvm-svn: 209784
-
Alexey Samsonov authored
Don't assume that dynamically initialized globals are all initialized from _GLOBAL__<module_name>I_ function. Instead, scan the llvm.global_ctors and insert poison/unpoison calls to each function there. Patch by Nico Weber! llvm-svn: 209780
-
Reid Kleckner authored
Add a function to combine two 32-bit integers into a 64-bit integer. There are no calls to this function yet, although a subsequent change will add some in LLDB. Reviewers: rnk Differential Revision: http://reviews.llvm.org/D3941 llvm-svn: 209777
-
- May 28, 2014
-
-
Rafael Espindola authored
This reverts commit r209762, bringing back r209746. It was not responsible for the libc++ build failure llvm-svn: 209776
-
Rafael Espindola authored
This reverts commit r209755. it was the real cause of the libc++ build failure. llvm-svn: 209775
-
Matt Arsenault authored
No test because no in-tree targets change the bitwidth of the setcc type depending on the bitwidth of the compared type. Patch by Ke Bai llvm-svn: 209771
-
Jim Grosbach authored
llvm-svn: 209770
-
Sanjay Patel authored
llvm-svn: 209768
-
Sanjay Patel authored
llvm-svn: 209763
-
Rafael Espindola authored
This reverts commit r209746. It looks it is causing a crash while building libcxx. I am trying to get a reduced testcase. llvm-svn: 209762
-
Reid Kleckner authored
Previously, DataTypes.h would #define a variety of symbols any time they weren't already defined. However, some versions of Visual Studio do provide the appropriate headers, so if those headers are included after DataTypes.h, it can lead to macro redefinition warnings. The fix is to include the appropriate headers if they exist, and only #define the symbols if the required header does not exist. Patch by Zachary Turner! --- The big change here is that we no longer have our own stdint.h typedefs because now all supported toolchains have stdint.h. Hooray! llvm-svn: 209760
-
Rafael Espindola authored
This matches gcc's behavior. It also seems natural given that aliases contain other properties that govern how it is accessed (linkage, visibility, dll storage). Clang still has to be updated to expose this feature to C. llvm-svn: 209759
-
Louis Gerbarg authored
Currently LLVM will generally merge GEPs. This allows backends to use more complex addressing modes. In some cases this is not happening because there is PHI inbetween the two GEPs: GEP1--\ |-->PHI1-->GEP3 GEP2--/ This patch checks to see if GEP1 and GEP2 are similiar enough that they can be cloned (GEP12) in GEP3's BB, allowing GEP->GEP merging (GEP123): GEP1--\ --\ --\ |-->PHI1-->GEP3 ==> |-->PHI2->GEP12->GEP3 == > |-->PHI2->GEP123 GEP2--/ --/ --/ This also breaks certain use chains that are preventing GEP->GEP merges that the the existing instcombine would merge otherwise. Tests included. llvm-svn: 209755
-
Hal Finkel authored
This reverts r208640 (I've just XFAILed the test) because it broke ppc64/Linux self-hosting. Because nearly every regression test triggers a segfault, I hope this will be easy to fix. llvm-svn: 209747
-
Rafael Espindola authored
This patch implements two things: 1. If we know one number is positive and another is negative, we return true as signed addition of two opposite signed numbers will never overflow. 2. Implemented TODO : If one of the operands only has one non-zero bit, and if the other operand has a known-zero bit in a more significant place than it (not including the sign bit) the ripple may go up to and fill the zero, but won't change the sign. e.x - (x & ~4) + 1 We make sure that we are ignoring 0 at MSB. Patch by Suyog Sarda. llvm-svn: 209746
-
Hal Finkel authored
This reverts commit r209638 because it broke self-hosting on ppc64/Linux. (the Clang-compiled TableGen would segfault because it jumped to an invalid address from within _ZNK4llvm17ManagedStaticBase21RegisterManagedStaticEPFPvvEPFvS1_E (which is within the command-line parameter registration process)). llvm-svn: 209745
-
Joerg Sonnenberger authored
it is set. llvm-svn: 209742
-
Evgeniy Stepanov authored
llvm-svn: 209721
-
Tilmann Scheller authored
Add regression tests for the following transformation: str X, [x20] ... add x20, x20, #32 -> str X, [x20], #32 with X being either w0, x0, s0, d0 or q0. llvm-svn: 209715
-
Justin Bogner authored
Add an __lldb_init_module function so that importing the lldbDataFormatters script automatically adds the formatters. llvm-svn: 209712
-