summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove unneeded typedef and volatileMichael Ilseman2012-12-102-6/+2
| | | | llvm-svn: 169743
* Fix funky copy-pasted grammatical error.Sean Silva2012-12-101-9/+9
| | | | | | PR14343 llvm-svn: 169742
* Revert "Make '-mtune=x86_64' assume fast unaligned memory accesses."Chandler Carruth2012-12-101-2/+1
| | | | | | Accidental commit... git svn betrayed me. Sorry for the noise. llvm-svn: 169741
* Make '-mtune=x86_64' assume fast unaligned memory accesses.Chandler Carruth2012-12-101-1/+2
| | | | | | | | | | | | | | | | | | | Summary: Not all chips targeted by x86_64 have this feature, but a dramatically increasing number do. Specifying a chip-specific tuning parameter will continue to turn the feature on or off as appropriate for that particular chip, but the generic flag should try to achieve the best performance on the most widely available hardware. Today, the number of chips with fast UA access dwarfs those without in the x86-64 space. Note that this also brings LLVM's code generation for this '-march' flag more in line with that of modern GCCs. CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D195 llvm-svn: 169740
* Fix a typo in my previous commit -- bloomfield is 0x1A not 0x2A.Chandler Carruth2012-12-101-1/+1
| | | | | | | Thanks to the PaX folks for noticing in review! We need some tests here, any sugestions welcome... llvm-svn: 169739
* Clang-format: error recovery for access specifiersAlexander Kornienko2012-12-103-7/+26
| | | | | | | | | | | | Reviewers: klimek Reviewed By: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D198 llvm-svn: 169738
* Clarifying comments for the MatchFinder and matchesNames matcher.Manuel Klimek2012-12-102-2/+6
| | | | llvm-svn: 169737
* [ASan] Typo fix in memcpy() and memmove() interceptors: ASAN_WRITE_RANGE and ↵Alexander Potapenko2012-12-101-4/+4
| | | | | | | | ASAN_READ_RANGE were swapped. This has been spotted by Anna Zaks (ganna@apple.com) llvm-svn: 169736
* [asan] move FakeStack into a separate fileKostya Serebryany2012-12-104-190/+218
| | | | llvm-svn: 169734
* [asan] introduce asan_allocator2.cc, which will have the replacement for ↵Kostya Serebryany2012-12-104-1/+53
| | | | | | asan allocator (now, just a bit of boilerplate) llvm-svn: 169733
* Add a libsanitizer API __sanitizer_sandbox_on_notify(void* reserved), which ↵Alexander Potapenko2012-12-106-0/+29
| | | | | | | | should be used by the client programs to notify the tools that sandboxing is about to be turned on. llvm-svn: 169732
* Address a FIXME and update the fast unaligned memory feature for newerChandler Carruth2012-12-102-13/+21
| | | | | | | | | | | | | | | Intel chips. The model number rules were determined by inspecting Intel's documentation for their newer chip model numbers. My understanding is that all of the newer Intel chips have fast unaligned memory access, but if anyone is concerned about a particular chip, just shout. No tests updated; it's not clear we have dedicated tests for the chips' various features, but if anyone would like tests (or can point me at some existing ones), I'm happy to oblige. llvm-svn: 169730
* tsan: exclude flaky testDmitry Vyukov2012-12-101-0/+4
| | | | llvm-svn: 169729
* Add a new visitor for walking the uses of a pointer value.Chandler Carruth2012-12-104-219/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This visitor provides infrastructure for recursively traversing the use-graph of a pointer-producing instruction like an alloca or a malloc. It maintains a worklist of uses to visit, so it can handle very deep recursions. It automatically looks through instructions which simply translate one pointer to another (bitcasts and GEPs). It tracks the offset relative to the original pointer as long as that offset remains constant and exposes it during the visit as an APInt offset. Finally, it performs conservative escape analysis. However, currently it has some limitations that should be addressed going forward: 1) It doesn't handle vectors of pointers. 2) It doesn't provide a cheaper visitor when the constant offset tracking isn't needed. 3) It doesn't support non-instruction pointer values. The current functionality is exactly what is required to implement the SROA pointer-use visitors in terms of this one, rather than in terms of their own ad-hoc base visitor, which was always very poorly specified. SROA has been converted to use this, and the code there deleted which this utility now provides. Technically speaking, using this new visitor allows SROA to handle a few more cases than it previously did. It is now more aggressive in ignoring chains of instructions which look like they would defeat SROA, but in fact do not because they never result in a read or write of memory. While this is "neat", it shouldn't be interesting for real programs as any such chains should have been removed by others passes long before we get to SROA. As a consequence, I've not added any tests for these features -- it shouldn't be part of SROA's contract to perform such heroics. The goal is to extend the functionality of this visitor going forward, and re-use it from passes like ASan that can benefit from doing a detailed walk of the uses of a pointer. Thanks to Ben Kramer for the code review rounds and lots of help reviewing and debugging this patch. llvm-svn: 169728
* Teach DAG combine to handle vector add/sub with vectors of all 0s.Craig Topper2012-12-103-5/+15
| | | | llvm-svn: 169727
* [CMake] TARGET_TRIPLE may be internal alias of LLVM_DEFAULT_TARGET_TRIPLE.NAKAMURA Takumi2012-12-101-2/+1
| | | | llvm-svn: 169726
* Adding tests since when I was asked whether this works I wasn'tManuel Klimek2012-12-101-0/+7
| | | | | | 100% sure. llvm-svn: 169725
* [CMake] Update dependencies to intrinsics_gen corresponding to r169711.NAKAMURA Takumi2012-12-105-5/+7
| | | | llvm-svn: 169724
* [Driver] Add test.Michael J. Spencer2012-12-102-1/+5
| | | | llvm-svn: 169721
* Revert to old behavior until linker can pass export-dynamic option.Bill Wendling2012-12-101-1/+6
| | | | llvm-svn: 169720
* Fix PR14548: SROA was crashing on a mixture of i1 and i8 loads and stores.Chandler Carruth2012-12-103-9/+33
| | | | | | | | | | | | | | | | | | | 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
* [Driver] Properly handle -entry for X86 Linux.Michael J. Spencer2012-12-092-4/+5
| | | | llvm-svn: 169718
* [Driver] Add -### support for printing out the core command line.Michael J. Spencer2012-12-095-4/+29
| | | | llvm-svn: 169717
* Remove left over debugging output.Michael J. Spencer2012-12-091-2/+0
| | | | llvm-svn: 169716
* [Driver] Make the X86Linux target use X86 (not x64) and properly initalize ↵Michael J. Spencer2012-12-091-3/+12
| | | | | | WriterOptions. llvm-svn: 169715
* Documentation: convert ReleaseNotes.html to reST.Dmitri Gribenko2012-12-095-881/+571
| | | | | | Patch by Anthony Mykhailenko with small fixes by me. llvm-svn: 169714
* Unbreak the clang build after r169712.Benjamin Kramer2012-12-091-3/+3
| | | | llvm-svn: 169713
* Reorganize FastMathFlags to be a wrapper around unsigned, and streamline ↵Michael Ilseman2012-12-098-79/+80
| | | | | | some interfaces. llvm-svn: 169712
* LoopVectorize: support vectorizing intrinsic callsPaul Redmond2012-12-095-2/+936
| | | | | | | | | - 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
* Have the bitcode reader/writer just use FPMathOperator's fast math enum directlyMichael Ilseman2012-12-093-20/+10
| | | | llvm-svn: 169710
* test commit.Paul Redmond2012-12-091-1/+1
| | | | llvm-svn: 169709
* Virtual method overrides can no longer have mismatched calling conventions. ↵Aaron Ballman2012-12-099-10/+136
| | | | | | This fixes PR14339. llvm-svn: 169705
* So many people have touched this, it doesn't make sense to ascribe ↵Chris Lattner2012-12-091-3/+0
| | | | | | authorship anymore. llvm-svn: 169704
* Use m_OneUse pattern instead of hasOneUse() method.Jakub Staszak2012-12-091-7/+4
| | | | | | No functionality change. llvm-svn: 169703
* docs: Convert GarbageCollection.html to reSTSean Silva2012-12-093-1392/+1055
| | | | | | Patch by Alexander Zinenko! llvm-svn: 169702
* Remove trailing spaces.Jakub Staszak2012-12-091-80/+80
| | | | llvm-svn: 169701
* Documentation: HowToReleaseLLVM.rst: remove trailing whitespace.Dmitri Gribenko2012-12-091-18/+18
| | | | llvm-svn: 169700
* Documentation: don't create TOCs manually.Dmitri Gribenko2012-12-091-81/+4
| | | | | | Thanks to Sean Silva for pointing out! llvm-svn: 169699
* Switch SROA to pop Uses off the back of its visitors' queues.Chandler Carruth2012-12-091-10/+8
| | | | | | | | 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
* Add a triple to this test. It depends on little-endian bitfield layout.Chandler Carruth2012-12-091-1/+1
| | | | llvm-svn: 169696
* Drop the address space limit for tests in the makefile build.Benjamin Kramer2012-12-091-2/+4
| | | | | | | | | | | 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
* Cleanup and fix an assert that was mis-firing.Chandler Carruth2012-12-091-5/+13
| | | | | | | | | | | | | | | | 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
* Add a test case that I've been using to clarify the bitfield layout forChandler Carruth2012-12-091-0/+147
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove extra blank line.Craig Topper2012-12-091-1/+0
| | | | llvm-svn: 169692
* Fix the bitfield record layout in codegen for big endian targets.Chandler Carruth2012-12-092-79/+169
| | | | | | | | | | | | | | | | | | 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
* Fix overload resolution for the initialization of a multi-dimensionalRichard Smith2012-12-093-2/+19
| | | | | | | | | | 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
* PR14550: If a system header contains a bogus constexpr function definition,Richard Smith2012-12-093-4/+25
| | | | | | don't mark the function as invalid, since we suppress the error. llvm-svn: 169689
* PR14549. Don't assert if we see an incomplete decltype specifier at the end ↵Richard Smith2012-12-092-2/+4
| | | | | | of the file. llvm-svn: 169688
* - Re-enable population count loop idiom recognization Shuxin Yang2012-12-098-21/+680
| | | | | | | - fix a bug which cause sigfault. - add two testing cases which was causing crash llvm-svn: 169687
* Modify testit to use the local headers and lib. Thanks go to Jeffrey Yasskin.Howard Hinnant2012-12-091-0/+28
| | | | llvm-svn: 169686
OpenPOWER on IntegriCloud