summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [FastISel][SelectionDAG]Teach fastISel about GC intrinsicsAnna Thomas2017-07-042-1/+60
| | | | | | | | | | | | | | | | | | | | | | | Summary: We are crashing in LLC at O0 when gc intrinsics are present in the block. The reason being FastISel performs basic block ISel by modifying GC.relocates to be the first instruction in the block. This can cause us to visit the GC relocate before it's corresponding GC.statepoint is visited, which is incorrect. When we lower the statepoint, we record the base and derived pointers, along with the gc.relocates. After this we can visit the gc.relocate. This patch avoids fastISel from incorrectly creating the block with gc.relocate as the first instruction. Reviewers: qcolombet, skatkov, qikon, reames Reviewed by: skatkov Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34421 llvm-svn: 307084
* [ELF] Do not use `this` to access members of non-template class. NFCSimon Atanasyan2017-07-041-3/+3
| | | | llvm-svn: 307083
* Make the test more strict.Rafael Espindola2017-07-041-0/+2
| | | | | | | We now don't produce "has undefined version" errors when producing binaries even when there is a linker script. llvm-svn: 307082
* [AMDGPU] Fix latency of MIMG instructionsMarek Olsak2017-07-041-0/+1
| | | | | | Patch by cwabbott (Connor Abbott). llvm-svn: 307081
* NFC. Removed mention of missing script from build_docker_image.sh.Ilya Biryukov2017-07-041-1/+3
| | | | llvm-svn: 307080
* [globalisel][tablegen] Partially fix compile-time regressions by converting ↵Daniel Sanders2017-07-048-519/+1062
| | | | | | | | | | | | | | | | | | | | | | matcher to state-machine(s) Summary: Replace the matcher if-statements for each rule with a state-machine. This significantly reduces compile time, memory allocations, and cumulative memory allocation when compiling AArch64InstructionSelector.cpp.o after r303259 is recommitted. The following patches will expand on this further to fully fix the regressions. Reviewers: rovka, ab, t.p.northover, qcolombet, aditya_nandakumar Reviewed By: ab Subscribers: vitalybuka, aemerson, javed.absar, igorb, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D33758 llvm-svn: 307079
* [LoopDeletion] NFC: Add debug statements to the optimizationAnna Thomas2017-07-041-13/+24
| | | | | | | We have a DEBUG option for loop deletion, but no related debug messages. Added some debug messages to state why loop deletion failed. llvm-svn: 307078
* [ELF] - Resolve references properly when using .symver directiveGeorge Rimar2017-07-043-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is PR28414. Previously LLD was unable to link following: (failed with undefined symbol bar) Version script: SOME_VERSION { global: *; }; .global _start .global bar .symver _start, bar@@SOME_VERSION _start: jmp bar Manual has next description: .symver name, name2@@nodename In this case, the symbol name must exist and be defined within the file being assembled. It is similar to name2@nodename. The difference is name2@@nodename will also be used to resolve references to name2 by the linker https://sourceware.org/binutils/docs/as/Symver.html Patch implements that. If we have name@@ver symbol and name is undefined, name@@ver is used to resolve references to name. If name is defined then multiple definition error is emited, that is consistent with what bfd do. Differential revision: https://reviews.llvm.org/D33680 llvm-svn: 307077
* [ELF] - Use llvm::find_if instead std::find_if where possible. NFC.George Rimar2017-07-042-11/+8
| | | | | | Two more places. llvm-svn: 307076
* fix trivial typos in comments; NFCHiroshi Inoue2017-07-045-5/+5
| | | | llvm-svn: 307075
* [index] Index nested name qualifiers in a forward declaration of aAlex Lorenz2017-07-042-0/+18
| | | | | | | | class template specialization rdar://33122110 llvm-svn: 307074
* [X86] Add combine tests for vector rotatesSimon Pilgrim2017-07-041-0/+83
| | | | | | Reference tests for D12833 llvm-svn: 307073
* Update lldb architecture docsPavel Labath2017-07-042-352/+75
| | | | | | | | | | | | | | | | | | Summary: Due to recent refactors, the descriptions of various modules were wildly out of date. With this patch, I am not trying to legislate anything, I am merely documenting the current state of affairs. I am also deleting one copy of the architecture docs. AFAIK, this one is not referenced from the web page. Reviewers: zturner, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D34872 llvm-svn: 307072
* Fix some warnings in ProcessorTraceTest.cppPavel Labath2017-07-041-17/+15
| | | | llvm-svn: 307071
* Revert r307064, "[InstCombine] Add test cases demonstrating creation of ↵NAKAMURA Takumi2017-07-041-63/+0
| | | | | | | | extra bswap instrinsic calls when when optimizing bswap and bitwise ops when the bswaps have additional uses. NFC" Seems confused between %tmpN and unnamed %N to give same name. llvm-svn: 307070
* llvm/ExecutionEngine/Orc/ObjectTransformLayer.h: Add <memory> to appease ↵NAKAMURA Takumi2017-07-041-0/+1
| | | | | | libstdc++'s std::shared_ptr. llvm-svn: 307069
* ClangdServer.cpp: Suppress a warning. [-Wunused-lambda-capture]NAKAMURA Takumi2017-07-041-0/+1
| | | | llvm-svn: 307068
* [OpenCL] Rename err_opencl_enqueue_kernel_expected_typeJoey Gouly2017-07-043-25/+29
| | | | | | | | | Rename err_opencl_enqueue_kernel_expected_type so that other builtins can use the same diagnostic. https://reviews.llvm.org/D34948 llvm-svn: 307067
* NFC commit.Gadi Haber2017-07-041-25/+26
| | | | | | | | | | | | Converting the Codegen test "extractelement-legalization-store-ordering.ll" to be "update_llc_test_checks" friendly. The changes to the test are needed for an upcoming scheduling patch. Reviewers: zvi, RKSimon Differential Revision: https://reviews.llvm.org/D34935 llvm-svn: 307066
* [InstCombine] Add TODOs for a couple things that should maybe be in ↵Craig Topper2017-07-041-1/+3
| | | | | | InstSimplify instead. NFC llvm-svn: 307065
* [InstCombine] Add test cases demonstrating creation of extra bswap ↵Craig Topper2017-07-041-0/+63
| | | | | | | | instrinsic calls when when optimizing bswap and bitwise ops when the bswaps have additional uses. NFC I assume bswap intrinsics are somewhat costly so we should be making sure we are getting rid of them not creating more. llvm-svn: 307064
* [tablegen] Avoid creating a temporary vector in getInstructionCaseAlexander Shaposhnikov2017-07-041-8/+6
| | | | | | | | | | | | | Record::getValues returns ArrayRef which has a cast operator to std::vector, as a result a temporary vector is created if the type of the variable is const std::vector& that is suboptimal in this case. Differential revision: https://reviews.llvm.org/D34969 Test plan: make check-all llvm-svn: 307063
* [X86] Add comment string for broadcast loads from the constant pool.Craig Topper2017-07-047-676/+1615
| | | | | | | | | | | | | | | | | Summary: When broadcasting from the constant pool its useful to print out the final vector similar to what we do for normal moves from the constant pool. I changed only a couple tests that were broadcast focused. One of them had been previously hand tweaked after running the script so that it could check the constant pool declaration. But I think this patch makes that unnecessary now since we can check the comment instead. Reviewers: spatel, RKSimon, zvi Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34923 llvm-svn: 307062
* [llvm] Revert "[tablegen] Avoid creating a temporary vector in ↵Alexander Shaposhnikov2017-07-041-1/+4
| | | | | | | | | getInstructionCase" Revert rL307059 because of the incorrect commit message & patch, will recommit later. llvm-svn: 307061
* [X86] Add RDRAND feature to GLM CPUCraig Topper2017-07-041-0/+1
| | | | | | | | | | | | | | Summary: I believe this should be supported on GLM since RDSEED is. Reviewers: m_zuckerman, zvi, RKSimon Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34828 llvm-svn: 307060
* [tablegen] Avoid creating a temporary vector in getInstructionCaseAlexander Shaposhnikov2017-07-041-4/+1
| | | | | | | | | | | | | Record::getValues returns ArrayRef which has a cast operator to std::vector, as a result a temporary vector is created if the type of the variable is const std::vector& that was suboptimal in this case. Differential revision: https://reviews.llvm.org/D34969 Test plan: make check-all llvm-svn: 307059
* [Orc] Remove the memory manager argument to addModule, and de-templatize theLang Hames2017-07-0420-185/+133
| | | | | | | | | | | | | | | | symbol resolver argument. De-templatizing the symbol resolver is part of the ongoing simplification of ORC layer API. Removing the memory management argument (and delegating construction of memory managers for RTDyldObjectLinkingLayer to a functor passed in to the constructor) allows us to build JITs whose base object layers need not be compatible with RTDyldObjectLinkingLayer's memory mangement scheme. For example, a 'remote object layer' that sends fully relocatable objects directly to the remote does not need a memory management scheme at all (that will be handled by the remote). llvm-svn: 307058
* [AVR] Fix bug which caused assertion errors for some FRMIDX instructionsDylan McKay2017-07-042-3/+41
| | | | | | | | | | | | | Previously, if a basic block ended with a FRMIDX instruction, we would end up doing something like this. *std::next(MBB.end()) Which would hit an error: "Assertion `!NodePtr->isKnownSentinel()' failed." llvm-svn: 307057
* [AVR] Add a missing clobber declaration to LPMWDylan McKay2017-07-041-6/+6
| | | | llvm-svn: 307056
* [DAG] Fixed predicate for determining when two frame indicesNirav Dave2017-07-041-5/+5
| | | | | | addresses are comparable. NFCI. llvm-svn: 307055
* Revert r307026, "[AMDGPU] Switch scalarize global loads ON by default"NAKAMURA Takumi2017-07-04141-789/+559
| | | | | | | | | It broke a testcase. Failing Tests (1): LLVM :: CodeGen/AMDGPU/alignbit-pat.ll llvm-svn: 307054
* [legalize-types] Clean up softening machinery.Anton Yartsev2017-07-045-42/+144
| | | | | | | | The patch makes SoftenFloatResult/Operand logic just the same as all other legalization routines have: SoftenFloatResult() now fills the SoftenFloats map and SoftenFloatOperand() perform all needed replacements. This prevents softening mashinery from leaving stale entries in SoftenFloats map (that resulted in errors during the legalize type checking) and clarifies softening. The patch replaces https://reviews.llvm.org/D29265. Differential Revision: https://reviews.llvm.org/D31946 llvm-svn: 307053
* [CodeGen] Check key function for typeinfo importShoaib Meenai2017-07-042-5/+15
| | | | | | | If the imported class does not have a key function, we should emit its typeinfo locally instead of attempting to import it. llvm-svn: 307052
* [Sema] Make BreakContinueFinder handle nested loops.Eli Friedman2017-07-043-6/+121
| | | | | | | | | | | | We don't care about break or continue statements that aren't associated with the current loop, so make sure the visitor doesn't find them. Fixes https://bugs.llvm.org/show_bug.cgi?id=32648 . Differential Revision: https://reviews.llvm.org/D34568 llvm-svn: 307051
* [X86][SSE4A] Add support for combining from EXTRQI/INSERTQI shufflesSimon Pilgrim2017-07-033-18/+31
| | | | llvm-svn: 307048
* MathExtras UnitTest: Assert that isPowerOf2(0) is false. NFC.Zvi Rackover2017-07-031-0/+2
| | | | | | | | | | | | | | | | | Summary: This is a follow-up on D34077. Elena observed that the correctness of the code relies on isPowerOf2(0) returning false. Adding a test to cover this corner-case. Reviewers: delena, davide, craig.topper Reviewed By: davide Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34939 llvm-svn: 307046
* [clang] Implement -Wcast-qual for C++Roman Lebedev2017-07-034-24/+244
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This way, the behavior of that warning flag more closely resembles that of GCC. Do note that there is at least one false-negative (see FIXME in tests). Fixes PR4802. Testing: ``` ninja check-clang-sema check-clang-semacxx ``` Reviewers: dblaikie, majnemer, rnk Reviewed By: dblaikie, rnk Subscribers: mclow.lists, cfe-commits, alexfh, rnk Differential Revision: https://reviews.llvm.org/D33102 llvm-svn: 307045
* fix msvc buildRafael Espindola2017-07-031-8/+9
| | | | llvm-svn: 307044
* Move clearOutputSections earlier.Rafael Espindola2017-07-031-7/+19
| | | | | | | Now removeUnusedSyntheticSections operates entirely on the linker script. llvm-svn: 307043
* [X86][SSE4A] Add SSE4A shuffle tests on pre-SSSE3 hardwareSimon Pilgrim2017-07-031-0/+71
| | | | llvm-svn: 307042
* Add a test for a recent regression.Rafael Espindola2017-07-031-0/+10
| | | | llvm-svn: 307041
* [clang-tidy] Resolve cppcoreguidelines-pro-type-member-init false positiveJonas Devlieghere2017-07-032-0/+16
| | | | | | | | | | | | | | | | Summary: https://bugs.llvm.org/show_bug.cgi?id=33557 Reviewers: Eugene.Zelenko, alexfh, aaron.ballman, hokein Reviewed By: aaron.ballman, hokein Subscribers: cfe-commits, nemanjai, xazax.hun, kbarton Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D34932 llvm-svn: 307040
* [ELF] - Simplify allocateHeaders(). NFC.George Rimar2017-07-031-10/+7
| | | | | | | * Return type changed to void, because it was unused. * std::find_if -> llvm::find_if llvm-svn: 307039
* [X86][SSE4A] Test SSE4A shuffle combining on SSE42 capable target as wellSimon Pilgrim2017-07-031-17/+36
| | | | llvm-svn: 307038
* [ELF] Remove unused synthetic sections from script commandsPetr Hosek2017-07-032-1/+28
| | | | | | | | | | | | | | Script commands are processed before unused synthetic sections are removed. Therefore, if a linker script matches one of these sections it'll get emitted as an empty output section because the logic for removing unused synthetic sections ignores script commands which could have already matched and captured one of these sections. This patch fixes that by also removing the unused synthetic sections from the script commands. Differential Revision: https://reviews.llvm.org/D34800 llvm-svn: 307037
* DAGCombine: Combine BUILD_VECTOR to TRUNCATEZvi Rackover2017-07-036-557/+285
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add a combine for creating a truncate to replace a build_vector composed of extracts with indices that form a stride-2^N series. Example: v8i32 V = ... v4i32 build_vector((extract_elt V, 0), (extract_elt V, 2), (extract_elt V, 4), (extract_elt V, 6)) --> v4i32 truncate (bitcast V to v4i64) Related discussion in llvm-dev about canonicalizing shuffles to truncates in LLVM IR: http://lists.llvm.org/pipermail/llvm-dev/2017-January/108936.html. Reviewers: spatel, RKSimon, efriedma, igorb, craig.topper, wolfgangp, delena Reviewed By: delena Subscribers: guyblank, delena, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D34077 llvm-svn: 307036
* [LoopInterchange] Add more debug messages to currentLimitations(). Florian Hahn2017-07-031-10/+34
| | | | | | | | | | | | | | Summary: This makes it easier to find out which limitation prevented this pass from doing its work. Reviewers: karthikthecool, mzolotukhin, efriedma, mcrosier Reviewed By: mcrosier Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D34940 llvm-svn: 307035
* Revert "clang-format: [JS] space between pseudo keywords and template literals."Martin Probst2017-07-032-6/+1
| | | | | | This reverts commit 71d3b5cd916106005ef23467e3f6c7fbca7bc499. llvm-svn: 307034
* [x86] auto-generate complete checks for tests; NFCSanjay Patel2017-07-034-155/+162
| | | | | | | These all used 'CHECK-NOT' which isn't necessary if we have complete checks. There were also over-specifications in the RUN params such as CPU model. llvm-svn: 307033
* [ELF] - Remove use of precomipled binary for invalid-relocation-x64.testGeorge Rimar2017-07-032-10/+7
| | | | | | | | | | Since yaml2obj is now able to parse integer values as relocation types, there is no need to keep hex edited elf object for this test, we can produce it on fly, just like this patch do. Differential revision: https://reviews.llvm.org/D34893 llvm-svn: 307032
OpenPOWER on IntegriCloud