- Dec 10, 2012
-
-
Bill Wendling authored
llvm-svn: 169720
-
Chandler Carruth authored
When SROA was evaluating a mixture of i1 and i8 loads and stores, in just a particular case, it would tickle a latent bug where we compared bits to bytes rather than bits to bits. As a consequence of the latent bug, we would allow integers through which were not byte-size multiples, a situation the later rewriting code was never intended to handle. In release builds this could trigger all manner of oddities, but the reported issue in PR14548 was forming invalid bitcast instructions. The only downside of this fix is that it makes it more clear that SROA in its current form is not capable of handling mixed i1 and i8 loads and stores. Sometimes with the previous code this would work by luck, but usually it would crash, so I'm not terribly worried. I'll watch the LNT numbers just to be sure. llvm-svn: 169719
-
Michael J. Spencer authored
llvm-svn: 169718
-
Michael J. Spencer authored
llvm-svn: 169717
-
Michael J. Spencer authored
llvm-svn: 169716
-
Michael J. Spencer authored
llvm-svn: 169715
-
Dmitri Gribenko authored
Patch by Anthony Mykhailenko with small fixes by me. llvm-svn: 169714
-
- Dec 09, 2012
-
-
Benjamin Kramer authored
llvm-svn: 169713
-
Michael Ilseman authored
llvm-svn: 169712
-
Paul Redmond authored
- added function to VectorTargetTransformInfo to query cost of intrinsics - vectorize trivially vectorizable intrinsic calls such as sin, cos, log, etc. Reviewed by: Nadav llvm-svn: 169711
-
Michael Ilseman authored
llvm-svn: 169710
-
Paul Redmond authored
llvm-svn: 169709
-
Aaron Ballman authored
llvm-svn: 169705
-
Chris Lattner authored
llvm-svn: 169704
-
Jakub Staszak authored
No functionality change. llvm-svn: 169703
-
Sean Silva authored
Patch by Alexander Zinenko! llvm-svn: 169702
-
Jakub Staszak authored
llvm-svn: 169701
-
Dmitri Gribenko authored
llvm-svn: 169700
-
Dmitri Gribenko authored
Thanks to Sean Silva for pointing out! llvm-svn: 169699
-
Chandler Carruth authored
This will more closely match the behavior of the new PtrUseVisitor that I am adding. Hopefully this will not change the actual behavior in any way, but by making the processing order more similar help in debugging. llvm-svn: 169697
-
Chandler Carruth authored
llvm-svn: 169696
-
Benjamin Kramer authored
The limit seems to break newer pythons (see PR13598) so just drop it for now. Eventually lit should learn to set limits for its children instead of a global limit in the makefile. If some PPC bots fail after this change: That's a good thing, they actually run clang tests now. llvm-svn: 169695
-
Chandler Carruth authored
Note that there is no test suite update. This was found by a couple of tests failing when the test suite was run on a powerpc64 host (thanks Roman!). The tests don't specify a triple, which might seem surprising for a codegen test. But in fact, these tests don't even inspect their output. Not at all. I could add a bunch of triples to these tests so that we'd get the test coverage for normal builds, but really someone needs to go through and add actual *tests* to these tests. =[ The ones in question are: test/CodeGen/bitfield-init.c test/CodeGen/union.c llvm-svn: 169694
-
Chandler Carruth authored
both LE and BE targets. AFAICT, Clang get's this correct for PPC64. I've compared it to GCC 4.8 output for PPC64 (thanks Roman!) and to my limited ability to read power assembly, it looks functionally equivalent. It would be really good to fill in the assertions on this test case for x86-32, PPC32, ARM, etc., but I've reached the limit of my time and energy... Hopefully other folks can chip in as it would be good to have this in place to test any subsequent changes. To those who care about PPC64 performance, a side note: there is some *obnoxiously* bad code generated for these test cases. It would be worth someone's time to sit down and teach the PPC backend to pattern match these IR constructs better. It appears that things like '(shr %foo, <imm>)' turn into 'rldicl R, R, 64-<imm>, <imm>' or some such. They don't even get combined with other 'rldicl' instructions *immediately adjacent*. I'll add a couple of these patterns to the README, but I think it would be better to look at all the patterns produced by this and other bitfield access code, and systematically build up a collection of patterns that efficiently reduce them to the minimal code. llvm-svn: 169693
-
Craig Topper authored
llvm-svn: 169692
-
Chandler Carruth authored
This was an egregious bug due to the several iterations of refactorings that took place. Size no longer meant what it original did by the time I finished, but this line of code never got updated. Unfortunately we had essentially zero tests for this in the regression test suite. =[ I've added a PPC64 run over the bitfield test case I've been primarily using. I'm still looking at adding more tests and making sure this is the *correct* bitfield access code on PPC64 linux, but it looks pretty close to me, and it is *worlds* better than before this patch as it no longer asserts! =] More commits to follow with at least additional tests and maybe more fixes. Sorry for the long breakage due to this.... llvm-svn: 169691
-
Richard Smith authored
array from a braced-init-list. There seems to be a core wording wart here (it suggests we should be testing whether the elements of the init list are implicitly convertible to the array element type, not whether there is an implicit conversion sequence) but our prior behavior appears to be a bug, not a deliberate effort to implement the standard as written. llvm-svn: 169690
-
Richard Smith authored
don't mark the function as invalid, since we suppress the error. llvm-svn: 169689
-
Richard Smith authored
llvm-svn: 169688
-
Shuxin Yang authored
- fix a bug which cause sigfault. - add two testing cases which was causing crash llvm-svn: 169687
-
Howard Hinnant authored
llvm-svn: 169686
-
- Dec 08, 2012
-
-
Craig Topper authored
Teach DAG combine to handle vector logical operations with vectors of all 1s or all 0s. These cases can show up when vectors are split for legalizing. Fix some tests that were dependent on these cases not being combined. llvm-svn: 169684
-
Chandler Carruth authored
There are still bugs in this pass, as well as other issues that are being worked on, but the bugs are crashers that occur pretty easily in the wild. Test cases have been sent to the original commit's review thread. This reverts the commits: r169671: Fix a logic error. r169604: Move the popcnt tests to an X86 subdirectory. r168931: Initial commit adding the pass. llvm-svn: 169683
-
Benjamin Kramer authored
Escape % in the TextDiagnosticBuffer so they aren't interpreted twice when fed into the diagnostic formatting machinery again. Fixes PR14543. llvm-svn: 169677
-
Benjamin Kramer authored
llvm-svn: 169676
-
David Chisnall authored
Linux too, as I think we inherited it from there. The ABI spec says 128-bit, although I think SGI's compiler on IRIX may be the only thing ever to support this. llvm-svn: 169674
-
Richard Smith authored
the cases where we can't determine whether special members would be trivial while building the class, we eagerly declare those special members. The impact of this is bounded, since it does not trigger implicit declarations of special members in classes which merely *use* those classes. In order to determine whether we need to apply this rule, we also need to eagerly declare move operations and destructors in cases where they might be deleted. If a move operation were supposed to be deleted, it would instead be suppressed, and we could need overload resolution to determine if we fall back to a trivial copy operation. If a destructor were implicitly deleted, it would cause the move constructor of any derived classes to be suppressed. As discussed on cxx-abi-dev, C++11's selected constructor rules are also retroactively applied as a defect resolution in C++03 mode, in order to identify that class B has a non-trivial copy constructor (since it calls A's constructor template, not A's copy constructor): struct A { template<typename T> A(T &); }; struct B { mutable A a; }; llvm-svn: 169673
-
Logan Chien authored
Windows does not have <stdint.h>, should include "llvm/Support/DataTypes.h" instead. llvm-svn: 169672
-
Shuxin Yang authored
llvm-svn: 169671
-
Richard Smith authored
flavour of special member. llvm-svn: 169670
-