summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Add GETSEC instruction.Craig Topper2015-02-073-0/+13
| | | | llvm-svn: 228514
* [X86][AVX2] AVX2 integer stack folding tests.Simon Pilgrim2015-02-071-0/+129
| | | | | | This adds tests for the remaining AVX2 instructions that currently support memory folding. llvm-svn: 228513
* Rename the 'Extending the Language: Debug Information' to 'Adding Debug ↵David Blaikie2015-02-072-4/+4
| | | | | | Information' since this isn't actually modifying/extending the language. llvm-svn: 228512
* Replace DeclContext::getNextContext with DeclContext::collectAllContextsYaron Keren2015-02-071-5/+7
| | | | | | in the Clang CFE Internals Manual (done in r147729). llvm-svn: 228510
* [X86][AVX] Added missing stack folding support + test for vptest ymm instructionSimon Pilgrim2015-02-072-0/+10
| | | | llvm-svn: 228509
* LoopIdiom: Use utility functions.Benjamin Kramer2015-02-071-54/+15
| | | | | | | | | The only difference between deleteIfDeadInstruction and RecursivelyDeleteTriviallyDeadInstructions is that the former also manually invalidates SCEV. That's unnecessary because SCEV automatically gets informed when an instruction is deleted via a ValueHandle. NFC. llvm-svn: 228508
* Avoid integer overflows around realloc calls resulting in potentialJoerg Sonnenberger2015-02-071-0/+21
| | | | | | | heap. Problem identified by Guido Vranken. Changes differ from original OpenBSD sources by not depending on non-portable reallocarray. llvm-svn: 228507
* [X86][SSE] Added missing stack folding tests for (v)mpsadbw instructionSimon Pilgrim2015-02-072-0/+18
| | | | llvm-svn: 228506
* [clang-tidy] Checker for inefficient use of algorithms on associative containersGabor Horvath2015-02-075-0/+240
| | | | | | | | | | | | | | | | | Summary: Associative containers implements some of the algorithms as methods which should be preferred to the algorithms in the algorithm header. The methods can take advantage of the order of the elements. Reviewers: alexfh Reviewed By: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7246 llvm-svn: 228505
* ValueTracking: Make isBytewiseValue simpler and more powerful at the same time.Benjamin Kramer2015-02-072-19/+24
| | | | | | | Turns out there is a simpler way of checking that all bytes in a word are equal than binary decomposition. llvm-svn: 228503
* Properly update AA metadata when performing call slot optimizationBjorn Steinbrink2015-02-072-0/+32
| | | | | | | | Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7482 llvm-svn: 228500
* Fix docs typo regarding lit.local.cfg filesJonathan Roelofs2015-02-071-1/+1
| | | | llvm-svn: 228499
* [BasicAA] Try to disambiguate GEPs through arrays of structs intoAhmed Bougacha2015-02-072-0/+268
| | | | | | | | | | | | | | | | | | | | | | | | | | | different fields. We can show that two GEPs off of the same (possibly multidimensional) array of structs, into different fields, can't alias. Quoting: For two GEPOperators GEP1 and GEP2, if we find that: - both GEPs begin indexing from the exact same pointer; - the last indices in both GEPs are constants, indexing into a struct; - said indices are different, hence,the pointed-to fields are different; - and both GEPs only index through arrays prior to that; this lets us determine that the struct that GEP1 indexes into and the struct that GEP2 indexes into must either precisely overlap or be completely disjoint. Because they cannot partially overlap, indexing into different non-overlapping fields of the struct will never alias. The other BasicAA::aliasGEP rules worked in some cases, but not all (for example, the i32x3 struct in the testcase). We can add this simple ad-hoc rule to complement them. rdar://19717375 Differential Revision: http://reviews.llvm.org/D7453 llvm-svn: 228498
* SCEV: Compress disposition pairs.Benjamin Kramer2015-02-072-21/+24
| | | | | | | Composing DenseMaps and SmallVectors is still somewhat suboptimal, but this at least halves the size of the vector elements. NFC. llvm-svn: 228497
* SmallVector: Move emplace_back to SmallVectorImpl.Benjamin Kramer2015-02-072-45/+53
| | | | | | | This resolves the strange effect that emplace_back is only available when the type contained in the vector is not trivially copyable. llvm-svn: 228496
* [X86] Force fp stack folding tests to keep to specific domain.Simon Pilgrim2015-02-072-13/+36
| | | | | | General boolean instructions (AND, ANDN, OR, XOR) need to use a specific domain instruction (and not just the default). llvm-svn: 228495
* [X86][AVX2] More AVX2 integer stack folding tests.Simon Pilgrim2015-02-071-3/+530
| | | | llvm-svn: 228494
* Fix typos; NFC.Andrea Di Biagio2015-02-071-4/+4
| | | | llvm-svn: 228493
* CodeGen: Move DebugLocs.Benjamin Kramer2015-02-072-3/+3
| | | | | | | | It's slightly cheaper than copying it, if the DebugLoc points to replaceable metadata every copy is recorded in a DenseMap, moving reduces the peak size of that map. llvm-svn: 228492
* Move DebugLocs around instead of copying.Benjamin Kramer2015-02-075-30/+27
| | | | llvm-svn: 228491
* MC: Emit COFF section flags in the "proper" orderDavid Majnemer2015-02-0719-46/+46
| | | | | | | | COFF section flags are not idempotent: 'rd' will make a read-write section because 'd' implies write 'dr' will make a read-only section because 'r' disables write llvm-svn: 228490
* Consistently use override rather than virtual.Chandler Carruth2015-02-071-8/+8
| | | | | | This fixes -Winconsistent-missing-override warnings. llvm-svn: 228489
* [PowerPC] Handle loop predecessor invokesHal Finkel2015-02-072-4/+62
| | | | | | | | | | If a loop predecessor has an invoke as its terminator, and the return value from that invoke is used to determine the loop iteration space, then we can't insert a computation based on that value in the loop predecessor prior to the terminator (oops). If there's such an invoke, or just no predecessor for that matter, insert a new loop preheader. llvm-svn: 228488
* Add more DWARF 5 language constants.Bruce Mitchener2015-02-073-1/+33
| | | | | | Differential Revision: http://reviews.llvm.org/D7430 llvm-svn: 228487
* When creating a disassembler for one of the arm variants that canJason Molenda2015-02-072-1/+19
| | | | | | | | | only execute thumb instructions, force the arch triple string to be "thumbv..." instead of "armv..." so we do the right thing by default when disassembling arbitrary chunks of code. <rdar://problem/15126397> llvm-svn: 228486
* [modules] Treat friend declarations that are lexically within a dependentRichard Smith2015-02-0712-24/+83
| | | | | | | context as anonymous for merging purposes. They can't be found by their names, so we merge them based on their position within the surrounding context. llvm-svn: 228485
* Change RHS-style decltype to LHS-style decltype<declval()>.Zachary Turner2015-02-075-5/+6
| | | | | | | | Seems some compilers don't like the RHS-style decltype specifier. This should fix the buildbots. llvm-svn: 228484
* clang-format: Format Objective-C try blocks like all the other try blocks.Nico Weber2015-02-073-9/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: @try { // ... } @finally { // ... } Now: @try { // ... } @finally { // ... } This is consistent with how we format C++ try blocks and SEH try blocks. clang-format not doing this before was an implementation oversight. This is dependent on BraceBreakingStyle. The snippet above is with the Attach style. Style Stroustrip for example still results in the "Before:" snippet, which makes sense since other blocks (try, else) break after '}' too. llvm-svn: 228483
* Resubmit unittests for DebugInfoPDB.Zachary Turner2015-02-079-16/+419
| | | | | | | | | | | | | | | These were originally submitted as part of r228428, but this part caused a build breakage in LLVMConfig. The library portion was resubmitted independently since it was not causing breakage. There were two reasons this was causing the build to fail. The first is that there were no Makefiles added for the PDB tests. And the second is that the DebugInfoPDB library was only being built by CMake behind an "if (MSVC)" check. This is wrong since this the library hides platform specific details, and it was causing LLVM-Config to not find the library when trying to build unittests. llvm-svn: 228482
* Make the byte-shift SSE intrinsics emit vector shuffles which we know the ↵Filipe Cabecinhas2015-02-074-20/+88
| | | | | | | | | | | | | | | | backend can handle. Also removed unused builtins. Original patch by Andrea Di Biagio! Reviewers: craig.topper, nadav Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7199 llvm-svn: 228481
* [docs][LLVM-style RTTI] Add a mention of multiple inheritance.Sean Silva2015-02-071-0/+14
| | | | llvm-svn: 228479
* Support: Fix tests for VirtualityStringDuncan P. N. Exon Smith2015-02-071-4/+7
| | | | | | | | | Since these `dwarf` functions return `const char *`, the tests need to use `StringRef` for checks. Should fix, e.g., hexagon [1]. [1]: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/22435 llvm-svn: 228478
* Remove unused parameter.Rui Ueyama2015-02-073-3/+3
| | | | llvm-svn: 228476
* [modules] Don't accidentally trigger deserialization from ↵Richard Smith2015-02-076-7/+22
| | | | | | DeclContext::noload_lookup. llvm-svn: 228475
* Support: Add dwarf::getVirtuality()Duncan P. N. Exon Smith2015-02-073-3/+27
| | | | llvm-svn: 228474
* Support: Use Dwarf.def for DW_VIRTUALITY, NFCDuncan P. N. Exon Smith2015-02-074-9/+35
| | | | | | | Use definition file for `DW_VIRTUALITY_*`. Add a `DW_VIRTUALITY_max` both for ease of testing and for future use by the `LLParser`. llvm-svn: 228473
* Dont' use close_fds = True on Windows.Zachary Turner2015-02-071-5/+12
| | | | | | | | | If you do, the test runner will fail immediately with the error: close_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr. llvm-svn: 228472
* Support: Add dwarf::getAttributeEncoding()Duncan P. N. Exon Smith2015-02-063-0/+24
| | | | llvm-svn: 228470
* Support: Rewrite AttributeEncodingString(), NFCDuncan P. N. Exon Smith2015-02-063-35/+31
| | | | llvm-svn: 228469
* Support: Stop stringifying DW_ATE_{lo,hi}_userDuncan P. N. Exon Smith2015-02-062-2/+10
| | | | llvm-svn: 228468
* [PowerPC] Fixup incomplete revert of test/CodeGen/PowerPC/tls-pic.llHal Finkel2015-02-061-7/+7
| | | | llvm-svn: 228467
* [Orc] Add a Kaleidoscope/Orc tutorial demonstrating lazy-irgen.Lang Hames2015-02-063-0/+1366
| | | | | | | | This tutorial builds on the lazy_codegen kaleidoscope/orc tutorial by making a small set of changes (~75 lines diff) to defer ir-generation for function definitions until functions are actually referenced. llvm-svn: 228466
* Add code to llvm-objdump so the -section option with -macho will dump literalKevin Enderby2015-02-063-6/+202
| | | | | | sections with the Mach-O S_{4,8,16}BYTE_LITERALS section types. llvm-svn: 228465
* PR22405: don't lose implicit-deleted-ness across AST write / read.Richard Smith2015-02-062-14/+32
| | | | llvm-svn: 228464
* [AArch64] Use the source location of the IR branch when creating BccAhmed Bougacha2015-02-061-2/+2
| | | | | | | | | | | | | | | | | | from a conditional branch fed by an add/sub/mul-with-overflow node. We previously used the SDLoc of the overflow node, for no good reason. In some cases, this led to the Bcc and B terminators having different source orders, and DBG_VALUEs being inserted between them. The real issue is with the code that can't handle DBG_VALUEs between terminators: the few places affected by this will be fixed soon. In the meantime, fixing the SDLoc is a positive change no matter what. No tests, as I have no idea how to get .loc emitted for branches? rdar://19347133 llvm-svn: 228463
* [X86][AVX2] Begun adding AVX2 integer stack folding tests.Simon Pilgrim2015-02-061-0/+295
| | | | llvm-svn: 228462
* PECOFF: Move error check for invalid command line combination to validateImpl.Rui Ueyama2015-02-063-6/+11
| | | | llvm-svn: 228461
* Revert "r227976 - [PowerPC] Yet another approach to __tls_get_addr" and ↵Hal Finkel2015-02-0615-292/+117
| | | | | | | | | | | | | | related fixups Unfortunately, even with the workaround of disabling the linker TLS optimizations in Clang restored (which has already been done), this still breaks self-hosting on my P7 machine (-O3 -DNDEBUG -mcpu=native). Bill is currently working on an alternate implementation to address the TLS issue in a way that also fully elides the linker bug (which, unfortunately, this approach did not fully), so I'm reverting this now. llvm-svn: 228460
* [Orc] Add a Kaleidoscope/Orc tutorial demonstrating lazy-codegen.Lang Hames2015-02-063-0/+1344
| | | | | | | | This tutorial builds on the initial kaleidoscope/orc tutorial by adding a LazyEmittingLayer to the custom stack. This extra layer defers compilation of modules in the JIT until they are statically referenced. llvm-svn: 228459
* Support: Add dwarf::getLanguage()Duncan P. N. Exon Smith2015-02-063-1/+33
| | | | llvm-svn: 228458
OpenPOWER on IntegriCloud