summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [LV] Preserve order of dependences in interleaved accesses analysisMatthew Simpson2016-06-242-54/+510
| | | | | | | | | | | | | | | | | | | | | | | | | | The interleaved access analysis currently assumes that the inserted run-time pointer aliasing checks ensure the absence of dependences that would prevent its instruction reordering. However, this is not the case. Issues can arise from how code generation is performed for interleaved groups. For a load group, all loads in the group are essentially moved to the location of the first load in program order, and for a store group, all stores in the group are moved to the location of the last store. For groups having members involved in a dependence relation with any other instruction in the loop, this reordering can violate the dependence. This patch teaches the interleaved access analysis how to avoid breaking such dependences, and should fix PR27626. An assumption of the original analysis was that the accesses had been collected in "program order". The analysis was then simplified by visiting the accesses bottom-up. However, this ordering was never guaranteed for anything other than single basic block loops. Thus, this patch also enforces the desired ordering. Reference: https://llvm.org/bugs/show_bug.cgi?id=27626 Differential Revision: http://reviews.llvm.org/D19984 llvm-svn: 273687
* Remangle intrinsics names when types are renamedArtur Pilipenko2016-06-248-2/+169
| | | | | | | | | | | | | This is a resubmittion of previously reverted rL273568. This is a fix for the problem mentioned in "LTO and intrinsics mangling" llvm-dev mail thread: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098387.html Reviewers: mehdi_amini, reames Differential Revision: http://reviews.llvm.org/D19373 llvm-svn: 273686
* NFC. Move verifyIntrinsicIsVarArg from verifier to ↵Artur Pilipenko2016-06-243-30/+28
| | | | | | Intrinsic::matchIntrinsicVarArg since it will be reused for intrinsic remangling code llvm-svn: 273685
* ExecutionEngine: silence unused value warningSaleem Abdulrasool2016-06-241-0/+3
| | | | | | | The Value is only used in debug or asserts builds. Just cast to void to silence an unused variable warning. llvm-svn: 273684
* Correct error in change description.Richard Smith2016-06-241-1/+1
| | | | llvm-svn: 273683
* ExecutionEngine: add preliminary support for COFF ARMSaleem Abdulrasool2016-06-243-5/+401
| | | | | | | | | This adds rudimentary support for COFF ARM to the dynamic loader for the exeuction engine. This can be used by lldb to JIT code into a COFF ARM environment. This lays the foundation for the loader, though a few of the relocation types are yet unhandled. llvm-svn: 273682
* Remaining motions pass.Richard Smith2016-06-241-2/+0
| | | | llvm-svn: 273681
* Inline variables tentatively approved for C++17.Richard Smith2016-06-241-1/+1
| | | | llvm-svn: 273680
* Make sure Format is always initialized.Rafael Espindola2016-06-241-0/+5
| | | | | | Should fix the msan bots. llvm-svn: 273679
* [MachineDominatorTree] Add a MDT verifier.Chad Rosier2016-06-243-1/+54
| | | | | | Differential Revision: http://reviews.llvm.org/D21657 llvm-svn: 273678
* Use existing predicate. NFC.Rafael Espindola2016-06-241-5/+1
| | | | | | This doesn't handle ELF, but neither did the previous code. llvm-svn: 273677
* Updates from further motions.Richard Smith2016-06-241-8/+1
| | | | llvm-svn: 273676
* Fix make-check issuesStrahinja Petrovic2016-06-241-4/+5
| | | | | | Fixing build issue for test test/CodeGen/struct-union-BE.c. llvm-svn: 273675
* Merge two identical if branches. NFC.Rafael Espindola2016-06-241-14/+11
| | | | llvm-svn: 273674
* Merge two identical if branches. NFC.Rafael Espindola2016-06-241-11/+3
| | | | llvm-svn: 273673
* clang-format a region. NFC.Rafael Espindola2016-06-241-4/+4
| | | | llvm-svn: 273672
* [LICM] Avoid repeating expensive call while promoting loads. NFCAnna Thomas2016-06-241-3/+4
| | | | | | | | | | | | | | | Summary: We can avoid repeating the check `isGuaranteedToExecute` when it's already called once while checking if the alignment can be widened for the load/store being hoisted. The function is invariant for the same instruction `UI` in `isGuaranteedToExecute(*UI, DT, CurLoop, SafetyInfo);` Reviewers: hfinkel, eli.friedman Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21672 llvm-svn: 273671
* Revert r273664Hubert Tong2016-06-241-44/+0
| | | | | | Revert change until build issues with MSVC can be resolved. llvm-svn: 273670
* [mips] Use --check-prefixes where appropriate. NFC.Daniel Sanders2016-06-24105-982/+839
| | | | llvm-svn: 273669
* More approved features for C++17.Richard Smith2016-06-241-2/+2
| | | | llvm-svn: 273668
* Dynamic memory allocation with alignment has been approved for C++17.Richard Smith2016-06-241-2/+2
| | | | llvm-svn: 273667
* Using for attributes voted into C++17.Richard Smith2016-06-244-1/+52
| | | | llvm-svn: 273666
* This patch fixes problem with passing structures and unionsStrahinja Petrovic2016-06-242-1/+50
| | | | | | | | smaller than register as argument in variadic functions on big endian architectures. Differential Revision: http://reviews.llvm.org/D21611 llvm-svn: 273665
* Add FixedSizeStorage to TrailingObjects; NFCHubert Tong2016-06-241-0/+44
| | | | | | | | | | | | Summary: This change introduces two types, `FixedSizeStorage` and `FixedSizeStorageOwner`, which can be used to provide stack-allocated objects with trailing objects. Reviewers: rsmith, faisalv, aaron.ballman Subscribers: llvm-commits, cfe-commits, nwilson Differential Revision: http://reviews.llvm.org/D19770 llvm-svn: 273664
* [ELF] - Fix incorrect logic in VersionScriptParser::parseVersion()George Rimar2016-06-242-2/+2
| | | | | | | | | | | | | | | | Previously the next sample script would generate 2 entries in Config->SymbolVersions with the same version name. VERSION { global: c; }; That happened because parseVersionSymbols() was called twice. At first for "global:" and since there is no local tag, it was called again. Patch fixes the issue, testcase was updated to demonstrate. Differential revision: http://reviews.llvm.org/D21640 llvm-svn: 273663
* Add (commented out) status entries for the upcoming WG21 motions.Richard Smith2016-06-241-0/+59
| | | | llvm-svn: 273662
* [ELF] - Support of compressed input sections implemented.George Rimar2016-06-245-6/+98
| | | | | | | | | | Patch implements support of zlib style compressed sections. SHF_COMPRESSED flag is used to recognize that decompression is required. After that decompression is performed and flag is removed from output. Differential revision: http://reviews.llvm.org/D20272 llvm-svn: 273661
* Remove ignoringImplicit from clang-tidy.Cong Liu2016-06-242-6/+1
| | | | llvm-svn: 273660
* IgnoringImplicit matcher.Cong Liu2016-06-245-3/+59
| | | | llvm-svn: 273659
* Revert "Revert "[misched] Extend scheduler to handle unsupported features""Simon Dardis2016-06-243-1/+53
| | | | | | | | This reverts commit r273565. This was an over-eager revert. llvm-svn: 273658
* AMDGPU: Add stub custom CodeGenPrepare passMatt Arsenault2016-06-245-0/+96
| | | | | | | | This will do various things including ones CodeGenPrepare does, but with knowledge of uniform values. llvm-svn: 273657
* Remove hack introduced by r273641.George Burgess IV2016-06-241-2/+0
| | | | | | Hopefully the buildbots have had enough time to pick this up by now. llvm-svn: 273656
* AMDGPU: Un-xfail and add testsMatt Arsenault2016-06-248-35/+386
| | | | | | | | Un XFAIL a few tests plus a few more I had lying around in my tree, which seem to all work now but I don't see tests that quite test the same things. llvm-svn: 273655
* Change shared library load path to appease Android botRyan Govostes2016-06-241-3/+6
| | | | llvm-svn: 273654
* AMDGPU: Remove disable-irstructurizer subtarget featureMatt Arsenault2016-06-246-16/+9
| | | | | | | | The only real reason to use it is for testing, so replace it with a command line option instead of a potentially function dependent feature. llvm-svn: 273653
* AMDGPU: Cleanup subtarget handling.Matt Arsenault2016-06-2458-706/+879
| | | | | | | | | Split AMDGPUSubtarget into amdgcn/r600 specific subclasses. This removes most of the static_casting of the basic codegen classes everywhere, and tries to restrict the features visible on the wrong target. llvm-svn: 273652
* try to fix the MSVC buildDavid Majnemer2016-06-241-1/+2
| | | | llvm-svn: 273651
* Use even more ArrayRefsDavid Majnemer2016-06-248-38/+28
| | | | | | No functional change is intended, just a small refactoring. llvm-svn: 273650
* Silence a -Wc++11-narrowing warningDavid Majnemer2016-06-241-1/+1
| | | | llvm-svn: 273649
* Update LLDB for r273647David Majnemer2016-06-241-4/+2
| | | | llvm-svn: 273648
* Use more ArrayRefsDavid Majnemer2016-06-2439-238/+174
| | | | | | No functional change is intended, just a small refactoring. llvm-svn: 273647
* Use the same underlying type for bitfieldsDavid Majnemer2016-06-248-33/+33
| | | | | | | MSVC allocates fresh storage for consecutive bitfields with different underlying types. llvm-svn: 273646
* Use the same underlying type for bitfieldsDavid Majnemer2016-06-243-3/+3
| | | | | | | MSVC allocates fresh storage for consecutive bitfields with different underlying types. llvm-svn: 273645
* Switch more loops to be range-basedDavid Majnemer2016-06-2414-68/+52
| | | | | | | This makes the code a little more concise, no functional change is intended. llvm-svn: 273644
* [X86] Combine two nearby calls to isSingleInputShuffleVector. NFCCraig Topper2016-06-241-6/+4
| | | | llvm-svn: 273643
* [llvm-cov] Fix two warningsVedant Kumar2016-06-242-5/+16
| | | | | | | | | They were using output streams inconsistently. One also had a grammar bug. I noticed these while trying to pare down D18278. llvm-svn: 273642
* Temporary hack to clean a file from buildbots.George Burgess IV2016-06-241-1/+3
| | | | | | | | | Some buildbots are complaining about a .s file under test/ that was inadvertently created by a test earlier today, and is still hanging around. I'll undo this change in ~1hr (or whenever the bots are done getting rid of said file). llvm-svn: 273641
* Fix an issue where the @lldb.command marker would not work with the new ↵Enrico Granata2016-06-244-6/+36
| | | | | | | | | | | 5-argument version of the Python command function This: a) teaches PythonCallable to look inside a callable object b) teaches PythonCallable to discover whether a callable method is bound c) teaches lldb.command to dispatch to either the older 4 argument version or the newer 5 argument version llvm-svn: 273640
* Teaching SimplifyCFG to recognize the Or-Mask trick that InstCombine uses toChuang-Yu Cheng2016-06-242-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | reduce the number of comparisons. Specifically, InstCombine can turn: (i == 5334 || i == 5335) into: ((i | 1) == 5335) SimplifyCFG was already able to detect the pattern: (i == 5334 || i == 5335) to: ((i & -2) == 5334) This patch supersedes D21315 and resolves PR27555 (https://llvm.org/bugs/show_bug.cgi?id=27555). Thanks to David and Chandler for the suggestions! Author: Thomas Jablin (tjablin) Reviewers: majnemer chandlerc halfdan cycheng http://reviews.llvm.org/D21397 llvm-svn: 273639
* BitcodeWriter: Remove redundant (and incorrect) check for whether to emit ↵Peter Collingbourne2016-06-242-3/+5
| | | | | | | | | | | | | | | module summary. The function name Module::empty() is slightly misleading in that it only tests for the presence of functions in the module. However we still want to emit the module summary if the module contains only global variables or aliases. The presence of such entities can be determined simply by checking the summary directly, as we are doing below. Differential Revision: http://reviews.llvm.org/D21669 llvm-svn: 273638
OpenPOWER on IntegriCloud