summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* ARM: remove ancient -arm-tail-calls optionSaleem Abdulrasool2014-03-118-20/+14
| | | | | | | | This option is from 2010, designed to work around a linker issue on Darwin for ARM. According to grosbach this is no longer an issue and this option can safely be removed. llvm-svn: 203576
* ARM: enable tail call optimisation on Thumb 2Saleem Abdulrasool2014-03-116-12/+14
| | | | | | | | | | | | Tail call optimisation was previously disabled on all targets other than iOS5.0+. This enables the tail call optimisation on all Thumb 2 capable platforms. The test adjustments are to remove the IR hint "tail" to function invocation. The tests were designed assuming that tail call optimisations would not kick in which no longer holds true. llvm-svn: 203575
* Fix crash in PRE.Erik Verbruggen2014-03-112-0/+26
| | | | | | | | | | After r203553 overflow intrinsics and their non-intrinsic (normal) instruction get hashed to the same value. This patch prevents PRE from moving an instruction into a predecessor block, and trying to add a phi node that gets two different types (the intrinsic result and the non-intrinsic result), resulting in a failing assert. llvm-svn: 203574
* [lit] Fix non-function style print statement.Daniel Dunbar2014-03-111-1/+1
| | | | llvm-svn: 203573
* [ASan] Don't build the ASan runtime with -undefined dynamic_lookup, which ↵Alexander Potapenko2014-03-111-4/+0
| | | | | | | | isn't necessary anymore. Fixes https://code.google.com/p/address-sanitizer/issues/detail?id=266. llvm-svn: 203572
* [sanitizer] Fix a typo.Evgeniy Stepanov2014-03-111-2/+2
| | | | llvm-svn: 203568
* ARM: simplify EmitAtomicBinary64Tim Northover2014-03-113-34/+19
| | | | | | | | | ATOMIC_STORE operations always get here as a lowered ATOMIC_SWAP, so there's no need for any code to handle them specially. There should be no functionality change so no tests. llvm-svn: 203567
* Changing this test case to use an unknown attribute, since there are not ↵Aaron Ballman2014-03-111-1/+1
| | | | | | currently any type attributes which would apply to a lambda, except in MSVC compatibility mode. llvm-svn: 203566
* Gracefully handle an attribute specifier following a lambda introducer when ↵Aaron Ballman2014-03-113-7/+21
| | | | | | the parameter list wasn't present. llvm-svn: 203565
* Sema: demote invalid atomic ordering message to warning.Tim Northover2014-03-113-22/+23
| | | | | | | | | | | | | | Someone could write: if (0) { __c11_atomic_load(ptr, memory_order_release); } or the equivalent, which is perfectly valid, so we shouldn't outright reject invalid orderings on purely static grounds. rdar://problem/16242991 llvm-svn: 203564
* Remove copy ctors that did the same thing as the default one.Benjamin Kramer2014-03-1113-63/+0
| | | | | | | The code added nothing but potentially disabled move semantics and made types non-trivially copyable. llvm-svn: 203563
* clang-format: Avoid unnecessary break before lambda return type.Daniel Jasper2014-03-112-1/+6
| | | | | | | | | | | | | | | | | Before: auto aaaaaaaa = [](int i, // break int j) -> int { return fffffffffffffffffffffffffffffffffffffff(i * j); }; After: auto aaaaaaaa = [](int i, // break int j) -> int { return fffffffffffffffffffffffffffffffffffffff(i * j); }; llvm-svn: 203562
* Sema: produce error when invalid ordering is passed to atomic builtinTim Northover2014-03-117-40/+282
| | | | | | | | | This is a conservative check, because it's valid for the expression to be non-constant, and in cases like that we just don't know whether it's valid. rdar://problem/16242991 llvm-svn: 203561
* Update for IR: add a second AtomicOrdering to cmpxchg insts.Tim Northover2014-03-113-7/+13
| | | | | | rdar://problem/15996804 llvm-svn: 203560
* IR: add a second ordering operand to cmpxhg for failureTim Northover2014-03-1160-288/+489
| | | | | | | | | | | | | | | The syntax for "cmpxchg" should now look something like: cmpxchg i32* %addr, i32 42, i32 3 acquire monotonic where the second ordering argument gives the required semantics in the case that no exchange takes place. It should be no stronger than the first ordering constraint and cannot be either "release" or "acq_rel" (since no store will have taken place). rdar://problem/15996804 llvm-svn: 203559
* GVN: fix hashing of extractvalue.Erik Verbruggen2014-03-111-0/+4
| | | | | | | My last commit did not add the indexes to the hashed value for extractvalue. Adding that back in. llvm-svn: 203558
* clang-format: Fix another false positive in the lambda detection.Daniel Jasper2014-03-112-2/+3
| | | | | | | | | | Before: int i = (*b)[a] -> f(); After: int i = (*b)[a]->f(); llvm-svn: 203557
* clang-format: Fix incorrect lambda recognition exposed by r203452.Daniel Jasper2014-03-112-1/+3
| | | | | | | | | | Before: int i = a[a][a] -> f(); After: int i = a[a][a]->f(); llvm-svn: 203556
* Removed code that conditionally included pthread.h for mingw.Hafiz Abid Qadeer2014-03-111-5/+1
| | | | | | | | This header is generally not available on mingw and can cause build errors. The windows host code does provide timespec definition that can be used for mingw case. llvm-svn: 203555
* clang::HeaderSearch: Use default constructor even for POD.NAKAMURA Takumi2014-03-111-3/+6
| | | | | | Unfortunately, msvc 2012 didn't accept non-static member initializer. llvm-svn: 203554
* GVN: merge overflow intrinsics with non-overflow instructions.Erik Verbruggen2014-03-112-58/+161
| | | | | | | | | | | | | | | | | | | When an overflow intrinsic is followed by a non-overflow instruction, replace the latter with an extract. For example: %sadd = tail call { i32, i1 } @llvm.sadd.with.overflow.i32(i32 %a, i32 %b) %sadd3 = add i32 %a, %b Here the add statement will be replaced by an extract. When an overflow intrinsic follows a non-overflow instruction, a clone of the intrinsic is inserted before the normal instruction, which makes it the same as the previous case. Subsequent runs of GVN can then clean up the duplicate instructions and insert the extract. This fixes PR8817. llvm-svn: 203553
* Fix fixme: remove unused method.Erik Verbruggen2014-03-111-4/+0
| | | | llvm-svn: 203552
* clang-format: Detect weird macro lambda usage.Daniel Jasper2014-03-112-1/+10
| | | | | | | | | | | | | | Before: void f() { MACRO((const AA & a) { return 1; }); } After: void f() { MACRO((const AA &a) { return 1; }); } llvm-svn: 203551
* clang/test/Modules/include-relative.c REQUIRES shell due to chdir.NAKAMURA Takumi2014-03-111-0/+1
| | | | llvm-svn: 203550
* Tests for DR381-388.Richard Smith2014-03-112-7/+109
| | | | llvm-svn: 203549
* Revert C++11ification in r203534 and r203536. Apparently our toolchains aren'tRichard Smith2014-03-114-30/+27
| | | | | | ready for this yet. llvm-svn: 203548
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-119-136/+126
| | | | | | class. llvm-svn: 203547
* test: Regenerate profile data for PGO testsJustin Bogner2014-03-118-58/+56
| | | | | | | | Some of this data had gotten out of date, so we weren't quite testing what we thought we were. This also moves the outdated data test to its own file to simplify regenerating the test data. llvm-svn: 203546
* Fix use of uninitialized variable in ExternalASTSourceTest.cpp (introduced ↵David Blaikie2014-03-111-1/+1
| | | | | | in 203525) llvm-svn: 203545
* ScheduleOptimizer: Fix prevectorization.Tobias Grosser2014-03-112-2/+85
| | | | | | | | | | | | In case we are at the innermost band, we try to prepare for vectorization. This means, we look for the innermost parallel loop and strip mine this loop to the innermost level using a strip-mine factor corresponding to the number of vector iterations. For whatever reason, the code that implemented this feature was broken. We now added a comment, a test case and obviously also the right code. llvm-svn: 203544
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-1113-234/+228
| | | | | | class. llvm-svn: 203543
* [HeaderSearch] Fix issue where if a headermap entry maps the filename to a ↵Argyrios Kyrtzidis2014-03-114-19/+44
| | | | | | | | | | framework import (non-absolute path) then we fail to find it if it is re-included later on. rdar://16285490 llvm-svn: 203542
* test: Give instrumentation based profiling tests their own directoryJustin Bogner2014-03-1112-43/+32
| | | | | | | | These tests are logically related, but they're spread about several different CodeGen directories. Consolidate them in one place to make them easier to manage. llvm-svn: 203541
* test: Fix feature test for "native" in lit.cfgJustin Bogner2014-03-112-2/+5
| | | | | | | Checking if the host arch is in the triple isn't quite correct. Change the feature test to match llvm's, which made the same change in r193459. llvm-svn: 203540
* Final bit for LWG #2263; test different allocator pointer types. Note that ↵Marshall Clow2014-03-113-1/+233
| | | | | | libc++ already does the right thing here; I've just added tests to ensure that it stays this way. llvm-svn: 203539
* De-virtualize a method since it doesn't override anything and isn't ↵Craig Topper2014-03-111-2/+1
| | | | | | overridden itself. llvm-svn: 203538
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-116-376/+375
| | | | | | class. llvm-svn: 203537
* Speculative workaround for apparent libstdc++ bug exposed by r203534.Richard Smith2014-03-112-2/+4
| | | | llvm-svn: 203536
* Move the warning about unused relational comparison from -Wunused-value toRichard Trieu2014-03-117-24/+58
| | | | | | | -Wunused-comparison. Also, newly warn on unused result from overloaded relational comparisons, now also in -Wunused-comparison. llvm-svn: 203535
* If a visibility update record is found for a DeclContext after that Decl hasRichard Smith2014-03-119-25/+42
| | | | | | | already been loaded, apply that update record to the Decl immediately, rather than adding it to a pending list and never applying it. llvm-svn: 203534
* update for renaming in LLVMSaleem Abdulrasool2014-03-112-2/+2
| | | | llvm-svn: 203533
* build: use LLVM build routinesSaleem Abdulrasool2014-03-111-12/+10
| | | | | | | | | Check if the compiler actually supports the flags that are being added. Previously, the compiler flags would be used improperly push the flags to the compiler. Particularly, on Darwin, the option would be pushed to the compiler even if it does not support it. llvm-svn: 203532
* build: fix bleeding whitespaceSaleem Abdulrasool2014-03-112-13/+13
| | | | llvm-svn: 203531
* Object: rename ARMV7 to ARMNTSaleem Abdulrasool2014-03-114-4/+4
| | | | | | | The official specifications state the name to be ARMNT (as per the Microsoft Portable Executable and Common Object Format Specification v8.3). llvm-svn: 203530
* Cleanup whitespaceDuncan P. N. Exon Smith2014-03-111-9/+9
| | | | llvm-svn: 203529
* If a module map is found in a relative -I path, convert the filenames within itRichard Smith2014-03-115-26/+73
| | | | | | | | to absolute paths when building the includes file for the module. Without this, the module build would fail, because the relative paths we were using are not necessarily relative to a directory in our include path. llvm-svn: 203528
* R600: Calculate store mask instead of using switch.Matt Arsenault2014-03-111-17/+3
| | | | llvm-svn: 203527
* Add helpers for getting scalar sizes of vector value types.Matt Arsenault2014-03-112-0/+12
| | | | llvm-svn: 203526
* Add a unittest for the ExternalASTSource.Richard Smith2014-03-112-0/+84
| | | | llvm-svn: 203525
* X86: Enable ISel of 16-bit MOVBE instructions.Jim Grosbach2014-03-113-13/+42
| | | | | | | | | | | | | | | | | When the MOVBE instructions are available, use them for 16-bit endian swapping as well as for 32 and 64 bit. The patterns were already present on the instructions, but weren't being matched because the operation was unconditionally marked to 'Expand.' Change that to be conditional on whether the MOVBE instructions are available. Use 'rolw' to implement the in-register version (32 and 64 bit have the dedicated 'bswap' instruction for that). Patch by Louis Gerbarg <lgg@apple.com>. rdar://15479984 llvm-svn: 203524
OpenPOWER on IntegriCloud