summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Correct version check 9.9.26 -> 9.99.26Kamil Rytarowski2019-12-181-1/+1
|
* [analyzer] NonnullGlobalConstants: Add support for kCFNull.Artem Dergachev2019-12-182-2/+12
| | | | It's a singleton in CoreFoundation that always contains a non-null CFNullRef.
* [libomptarget][nfc] Introduce atomic wrapper functionJon Chesterfield2019-12-188-25/+71
| | | | | | | | | | | | | | | | | | | Summary: [libomptarget][nfc] Introduce atomic wrapper function Wraps atomic functions in a template prefixed __kmpc_atomic that dispatches to cuda or hip atomic functions. Intended to be easily extended to dispatch to OpenCL or C++ atomics for a third target. Reviewers: ABataev, jdoerfert, grokos Reviewed By: jdoerfert Subscribers: Anastasia, jvesely, mgrang, dexonsmith, llvm-commits, mgorny, jfb, openmp-commits Tags: #openmp, #llvm Differential Revision: https://reviews.llvm.org/D71404
* [LoopFusion] Use the LoopInfo::isRotatedForm method (NFC).Kit Barton2019-12-181-15/+3
| | | | | | Loop fusion previously had a method to check whether a loop was in rotated form. This method has been moved into the LoopInfo class. This patch removes the old isRotated method from loop fusion, in favour of the new one in LoopInfo.
* [InstCombine] Insert instructions before adding them to worklistJakub Kuderski2019-12-184-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds instructions to the InstCombine worklist after they are properly inserted. This way we don't get `<badref>`s printed when logging added instructions. It also adds a check in `Worklist::Add` that ensures that all added instructions have parents. Simple test case that illustrates the difference when run with `--debug-only=instcombine`: ``` define i32 @test35(i32 %a, i32 %b) { %1 = or i32 %a, 1135 %2 = or i32 %1, %b ret i32 %2 } ``` Before this patch: ``` INSTCOMBINE ITERATION #1 on test35 IC: ADDING: 3 instrs to worklist IC: Visiting: %1 = or i32 %a, 1135 IC: Visiting: %2 = or i32 %1, %b IC: ADD: %2 = or i32 %a, %b IC: Old = %3 = or i32 %1, %b New = <badref> = or i32 %2, 1135 IC: ADD: <badref> = or i32 %2, 1135 ... ``` With this patch: ``` INSTCOMBINE ITERATION #1 on test35 IC: ADDING: 3 instrs to worklist IC: Visiting: %1 = or i32 %a, 1135 IC: Visiting: %2 = or i32 %1, %b IC: ADD: %2 = or i32 %a, %b IC: Old = %3 = or i32 %1, %b New = <badref> = or i32 %2, 1135 IC: ADD: %3 = or i32 %2, 1135 ... ``` Reviewers: fhahn, davide, spatel, foad, grosser, nikic Reviewed By: nikic Subscribers: nikic, lebedev.ri, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71093
* [Concepts] Fix incorrect move out of temporary in D41910Saar Raz2019-12-181-2/+2
| | | | Moves out of temporaries caused warnings that failed builds.
* [libomptarget][nfc] Extract function from data_sharing, move to commonJonChesterfield2019-12-185-17/+21
| | | | | | | | | | | | | | | | | | Summary: [libomptarget][nfc] Extract function from data_sharing, move to common Finding the first active thread in the warp is different on nvptx and amdgcn, mostly due to warp size and the desire for efficiency. Reviewers: ABataev, jdoerfert, grokos Reviewed By: jdoerfert Subscribers: jvesely, mgorny, openmp-commits Tags: #openmp Differential Revision: https://reviews.llvm.org/D71643
* [NFC] Update FIXME for one VFS testAdrian McCarthy2019-12-181-1/+1
| | | | | | The VFS/subframework-symlink.m test is still XFAIL on Windows, but for a different reason than those fixed in PR43272, so I've updated the PR number.
* Fix more VFS tests on WindowsAdrian McCarthy2019-12-185-20/+36
| | | | | | | | | | | | Since VFS paths can be in either Posix or Windows style, we have to use a more flexible definition of "absolute" path. The key here is that FileSystem::makeAbsolute is now virtual, and the RedirectingFileSystem override checks for either concept of absolute before trying to make the path absolute by combining it with the current directory. Differential Revision: https://reviews.llvm.org/D70701
* [Concepts] Fix crash in D41910Saar Raz2019-12-181-1/+1
| | | | Differential Revision: https://reviews.llvm.org/D41910
* Revert "[AArch64][SVE] Replace integer immediate intrinsics with splat ↵Danilo Carvalho Grael2019-12-186-374/+331
| | | | | | | | | | vector variant" This reverts commit 830e08b98bcb427136443093c282b25328137cf0 and eb1857ce0da481caf82271e6d0c9fc745dfab26f. This commit leads to an unexpected failure on test/CodeGen/AArch64/sve-gather-scatter-dag-combine.ll. The review will need more changes before its re-commited.
* [Clang FE, SystemZ] Don't add "true" value for the "mnop-mcount" attribute.Jonas Paulsson2019-12-186-9/+7
| | | | | | | | Let the "mnop-mcount" function attribute simply be present or non-present. Update SystemZ backend as well to use hasFnAttribute() instead. Review: Ulrich Weigand https://reviews.llvm.org/D71669
* [Concepts] Constrained partial specializations and function overloads.Saar Raz2019-12-1818-102/+1021
| | | | | | Added support for constraint satisfaction checking and partial ordering of constraints in constrained partial specialization and function template overloads. Phabricator: D41910
* [InstCombine] Allow to limit the max number of iterationsJakub Kuderski2019-12-183-13/+101
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch teaches InstCombine to accept a new parameter: maximum number of iterations over functions. InstCombine tries to simplify instructions by iterating over the whole function until the function stops changing. As a consequence, the last iteration before reaching a fixpoint visits all instructions in the worklist and never performs any rewrites. Bounding the number of iterations can have 2 benefits: * In case the users of the pass can make a good guess about the number of required iterations, we can save the time normally spent on the last iteration that doesn't change anything. * When the wants to use InstCombine as a cleanup pass, it may be enough to run just a few iterations and stop even before reaching a fixpoint. This can be also useful for implementing a lightweight pass pipeline (think `-O1`). This patch does not change the behavior of opt or Clang -- limiting the number of iterations is entirely opt-in. Reviewers: fhahn, davide, spatel, foad, nlopes, grosser, lebedev.ri, nikic, xbolva00 Reviewed By: spatel Subscribers: craig.topper, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71145
* llvm-cxxmap: fix support for remapping non-mangled names.Richard Smith2019-12-183-7/+44
| | | | | | | Remappings involving extern "C" names were already supported in the context of <local-name>s, but this support didn't work for remapping the complete mangling itself. (Eg, we would remap X<foo> but not foo itself, if foo is an extern "C" function.)
* [SelectionDAGBuilder] Use getConstant instead of getTargetConstant to build ↵Craig Topper2019-12-182-7/+8
| | | | | | | | | | | | the offset for struct types in getUniformBase. getTargetConstant prevents any optimizations from operating on the value and basically says its already been iseled. But since we want the index to be in a register, this isn't true. Prior to this we were generating a vbroadcast with an immediate argument which is illegal and was flagged by the expensive checks bot.
* [PowerPC][NFC] Refactor splat of constant to vector.Stefan Pintilie2019-12-181-25/+4
| | | | | | | | | Refactor the splatting of a constant to a vector so that common code is used both for Power9 and Power8. Patch by: Anil Mahmud Differential Revision: https://reviews.llvm.org/D71481
* Add support for the MS qualifiers __ptr32, __ptr64, __sptr, __uptr.Amy Huang2019-12-1821-53/+340
| | | | | | | | | | | | | | | | | | | | Summary: This adds parsing of the qualifiers __ptr32, __ptr64, __sptr, and __uptr and lowers them to the corresponding address space pointer for 32-bit and 64-bit pointers. (32/64-bit pointers added in https://reviews.llvm.org/D69639) A large part of this patch is making these pointers ignore the address space when doing things like overloading and casting. https://bugs.llvm.org/show_bug.cgi?id=42359 Reviewers: rnk, rsmith Subscribers: jholewinski, jvesely, nhaehnle, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D71039
* [AArch64][SVE] Fix gather scatter dag combine test.Danilo Carvalho Grael2019-12-181-10/+6
|
* [AArch64][SVE] Replace integer immediate intrinsics with splat vector variantDanilo Carvalho Grael2019-12-185-321/+368
| | | | | | | | | | | | Summary: Replace the integer immediate intrisics with splat vector variants so they can be applied as optimizations for the C/C++ intrinsics. Reviewers: sdesmalen, huntergr, rengolin, efriedma, c-rhodes, mgudim, kmclaughlin Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits, amehsan Tags: #llvm Differential Revision: https://reviews.llvm.org/D71614
* [ MC ] Match labels to existing fragments even when switching sections.Michael Trent2019-12-185-20/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This commit restores the original branch (4272372c571) and applies an additional change dropped from the original in a bad merge. This change should address the previous bot failures. Both changes reviewed by pete.) Summary: This commit builds upon Derek Schuff's 2014 commit for attaching labels to existing fragments ( Diff Revision: http://reviews.llvm.org/D5915 ) When temporary labels appear ahead of a fragment, MCObjectStreamer will track the temporary label symbol in a "Pending Labels" list. Labels are associated with fragments when a real fragment arrives; otherwise, an empty data fragment will be created if the streamer's section changes or if the stream finishes. This commit moves the "Pending Labels" list into each MCStream, so that this label-fragment matching process is resilient to section changes. If the streamer emits a label in a new section, switches to another section to do other work, then switches back to the first section and emits a fragment, that initial label will be associated with this new fragment. Labels will only receive empty data fragments in the case where no other fragment exists for that section. The downstream effects of this can be seen in Mach-O relocations. The previous approach could produce local section relocations and external symbol relocations for the same data in an object file, and this mix of relocation types resulted in problems in the ld64 Mach-O linker. This commit ensures relocations triggered by temporary labels are consistent. Reviewers: pete, ab, dschuff Reviewed By: pete, dschuff Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71368
* [AArch64] add tests for bitcasted DUPLANE; NFCSanjay Patel2019-12-181-0/+40
| | | | See D63815 for context/motivation.
* Revert "Add an -fno-temp-file flag for compilation"Mitch Phillips2019-12-187-13/+2
| | | | | | | This reverts commit d129aa1d5369781deff6c6b854cb612e160d3fb2. This broke the MSan buildbots. More information available in the original PR: https://reviews.llvm.org/D70615
* [NFC] Fix sanitizer lint problem that's breaking Android bot.Mitch Phillips2019-12-181-1/+1
| | | | | Fixes the lint issue introduced by e14ff22694c28b5e731502bfc30192b3208d4d8d
* Fix modules build by adding missing includes to LTO/Config.hRaphael Isemann2019-12-181-0/+2
|
* Reapply: [DebugInfo] Correctly handle salvaged casts and split fragments at ISelstozer2019-12-1811-19/+156
| | | | | | | | This reverts commit 1f3dd83cc1f2b8f72b9d59e2b4221b12fb7f9a95, reapplying commit bb1b0bc4e57428ce364d3d6c075ff03cb8973462. The original commit failed on some builds seemingly due to the use of a bracketed constructor with an std::array, i.e. `std::array<> arr({...})`.
* [llvm-exegesis][NFC] internal changesGuillaume Chatelet2019-12-1812-135/+203
| | | | | | | | | | | | | | Summary: BitVectors are now cached to lower memory utilization. Instructions have reference semantics. Reviewers: courbet Subscribers: sdardis, tschuett, jrtc27, atanasyan, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71653
* [compiler-rt] [test] Disable ASLR on UBSAN+[AMT]SAN tests on NetBSDMichał Górny2019-12-181-0/+2
|
* [compiler-rt] [test] Disable ASLR on LSAN+ASAN tests on NetBSDMichał Górny2019-12-181-0/+2
|
* [NFC][InlineCost] Run clang-format on InlineCost.cppMircea Trofin2019-12-181-11/+10
| | | | | | | | | | | | Reviewers: davidxl Reviewed By: davidxl Subscribers: Jim, eraman, hiraditya, haicheng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71646
* [AArch64] update test checks; NFCSanjay Patel2019-12-181-491/+221
| | | | | The common prefix reduces a bunch of replication; not sure why it didn't happen before.
* gn build: Merge 9883d7edc65LLVM GN Syncbot2019-12-181-0/+1
|
* [LoopUtils] Updated deleteDeadLoop() to handle loop nest.Whitney Tsang2019-12-183-1/+104
| | | | | | | | | Reviewer: kariddi, sanjoy, reames, Meinersbur, bmahjour, etiotto, kbarton Reviewed By: Meinersbur Subscribers: mgorny, hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D70939
* [compiler-rt] [test] Disable ASLR for fuzzer tests on NetBSDMichał Górny2019-12-181-0/+3
|
* [clang] [cmake] Fix gen_ast_dump_json_test.py binary dirMichał Górny2019-12-181-1/+2
| | | | | | | | Use correct directory to put gen_ast_dump_json_test.py instead of LLVM_BINARY_DIR. This fixes attempting to write to /usr when building clang standalone. Differential Revision: https://reviews.llvm.org/D71615
* [ThinLTO] Show preserved symbols in DOT filesevgeny2019-12-187-24/+34
| | | | Differential revision: https://reviews.llvm.org/D71608
* [globalisel] Small correction to the fixup in 0a0813962d6. The two ID's are ↵Daniel Sanders2019-12-181-2/+2
| | | | | | | not the same size The rule ID is a uint64_t as it has global scope but the UID is scoped to the rule and expected to be much smaller so it's only unsigned.
* [compiler-rt] Sync NetBSD ioctl definitions with 9.99.26Kamil Rytarowski2019-12-184-6/+47
| | | | Document the minimal version supported to 9.0.
* [gicombiner] Import tryCombineIndexedLoadStore()Daniel Sanders2019-12-185-24/+49
| | | | | | | | | | | | | | | | | Summary: Now that arbitrary data is supported, import tryCombineIndexedLoadStore() Depends on D69147 Reviewers: bogner, volkan Reviewed By: volkan Subscribers: hiraditya, arphaman, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69151
* [NFC][InstCombine] Autogenerate assume.ll testRoman Lebedev2019-12-181-40/+77
|
* [globalisel] Attempt to fix ARM bots that emit the correct number in the ↵Daniel Sanders2019-12-181-4/+5
| | | | wrong place
* Add an -fno-temp-file flag for compilationHans Wennborg2019-12-187-2/+13
| | | | | | | | | | | | Our build system does not handle randomly named files created during the build well. We'd prefer to write compilation output directly without creating a temporary file. Function parameters already existed to control this behavior but were not exposed all the way out to the command line. Patch by Zachary Henkel! Differential revision: https://reviews.llvm.org/D70615
* [AArch64] match fcvtl2 with bitcasted extractSanjay Patel2019-12-183-130/+80
| | | | | | | | | | | | | This should eliminate a regression seen in D63815. If we are FP extending the high half extract of a vector, we should be able to peek through a bitcast sitting between the extract and extend. This replaces tablegen patterns with a more general DAG to DAG override, so we can handle any casted type. Differential Revision: https://reviews.llvm.org/D71515
* [InstCombine] add tests for copysign; NFCSanjay Patel2019-12-181-0/+23
|
* [lldb][NFC] Add unit test for persistent variable lookup with ↵Raphael Isemann2019-12-183-23/+126
| | | | | | | | | ClangExpressionDeclMap This adds a unit test for looking up persistent declarations in the scratch AST context. Also adds the `GetPersistentDecl` hook to the ClangExpressionDeclMap that this unit test can emulate looking up persistent variables without having a lldb_private::Target.
* [gicombiner] Add support for arbitrary match data being passed from match to ↵Daniel Sanders2019-12-183-15/+112
| | | | | | | | | | | | | | | | | | | | | apply Summary: This is used by the extending_loads combine to tell the apply step which use is the preferred one to fold and the other uses should be re-written to consume. Depends on D69117 Reviewers: volkan, bogner Reviewed By: volkan Subscribers: hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69147
* Revert "[DebugInfo] Correctly handle salvaged casts and split fragments at ISel"stozer2019-12-1811-156/+19
| | | | | | Reverted due to build failure on windows bots. This reverts commit bb1b0bc4e57428ce364d3d6c075ff03cb8973462.
* gn build: Merge 7ea2e5195a8LLVM GN Syncbot2019-12-181-0/+6
|
* Revert "Temporarily Revert "[gicombiner] Add the MatchDag structure and ↵Daniel Sanders2019-12-1817-3/+1591
| | | | | | | | | | | | | | | | | | | parse instruction DAG's from the input"" This reverts commit e62e760f29567fe0841af870c65a4f8ef685d217. The issue @uweigand raised should have been fixed by iterating over the vector that owns the operand list data instead of the FoldingSet. The MSVC issue raised by @thakis should have been fixed by relaxing the regexes a little. I don't have a Windows machine available to test that so I tested it by using `perl -p -e 's/0x([0-9a-f]+)/\U\1\E/g' to convert the output of %p to the windows style. I've guessed at the issue @phosek raised as there wasn't enough information to investigate it. What I think is happening on that bot is the -debug option isn't available because the second stage build is a release build. I'm not sure why other release-mode bots didn't report it though.
* gn build: Merge 1ad15046dcfLLVM GN Syncbot2019-12-181-0/+3
|
OpenPOWER on IntegriCloud