summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [DebugInfo] Avoid dropping location info across block boundariesJeremy Morse2019-08-212-59/+263
| | | | | | | | | | | | | | | | | | LiveDebugValues propagates variable locations between blocks by creating new DBG_VALUE insts in the successors, then interpreting them when it passes back through the block at a later time. However, this flushes out any extra information about the location that LiveDebugValues holds: for example, connections between variable locations such as discussed in D65368. And as reported in PR42772 this causes us to lose track of the fact that a spill-location is actually a spill, not a register location. This patch fixes that by deferring the creation of propagated DBG_VALUEs until after propagation has completed: instead location propagation occurs only by sharing location ID numbers between blocks. Differential Revision: https://reviews.llvm.org/D66412 llvm-svn: 369508
* Reland D65242 "[ELF] More dynamic relocation packing""Fangrui Song2019-08-212-119/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixed a bug in r369488. When config->isRela is false, i->r_addend is not initialized (see encodeDynamicReloc). So we should check config->isRela before accessing r_addend: - if (j - i < 3 || i->r_addend) + if (j - i < 3 || (config->isRela && i->r_addend != 0)) Original description: Currently, with Android dynamic relocation packing, only relative relocations are grouped together. This patch implements similar packing for non-relative relocations. The implementation groups non-relative relocations with the same r_info and r_addend, if using RELA. By requiring a minimum group size of 3, this achieves smaller relocation sections. Building Android for an ARM32 device, I see the total size of /system/lib decrease by 392 KB. Grouping by r_info also allows the runtime dynamic linker to implement an 1-entry cache to reduce the number of symbol lookup required. With such 1-entry cache implemented on Android, I'm seeing 10% to 20% reduction in total time spent in runtime linker for several executables that I tested. As a simple correctness check, I've also built x86_64 Android and booted successfully. Differential Revision: https://reviews.llvm.org/D65242 Patch by Vic Yang llvm-svn: 369507
* [lldb][NFC] Add tests for invalid command invocationsRaphael Isemann2019-08-216-0/+93
| | | | llvm-svn: 369506
* [AArch64] Update MTE system register encodingsLuke Cheeseman2019-08-213-35/+35
| | | | | | | | | | The encodings for the system registers TFSRE0_EL1, TFSR_EL1 TFSR_EL2, TFSR_EL3 and TFSR_EL12 have been changed so that they consistently have CRn=5 and CRm=6 as per https://developer.arm.com/docs/ddi0487/latest. Differential Revision: https://reviews.llvm.org/D65442 llvm-svn: 369505
* Removed some dead code in BugReporter and related filesDmitri Gribenko2019-08-2110-143/+13
| | | | | | | | | | Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66473 llvm-svn: 369504
* Fix an unused variable warning in ClangASTContext.cppPavel Labath2019-08-211-2/+1
| | | | llvm-svn: 369503
* Properly EXCLUDE_FROM_ALL the testing support libraryPavel Labath2019-08-211-1/+1
| | | | | | | | | | The EXCLUDE_FROM_ALL variable is used by add_llvm_library, but lldb does not use that function (it uses llvm_add_library :P). Instead, set the directory property with the same name directly. This should fix standalone builds against an llvm install tree. llvm-svn: 369502
* Be explicit about Windows coff name trailing character policySerge Guelton2019-08-211-6/+14
| | | | | | | | | | It's okay to *not* copy the trailing zero of a windows section/symbol name. This is compatible with strncpy behavior but gcc doesn't know that and throws an invalid warning. Encode this behavior in a proper function. Differential Revision: https://reviews.llvm.org/D66420 llvm-svn: 369501
* [NFC] Mark CallTargetComparator() as const to fix libc++ warningsRaphael Isemann2019-08-211-1/+1
| | | | | | | | | | | | | | | | | | | | We currently get this warning when compiling with libc++: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/set:454:26: warning: the specified comparator type does not provide a const call operator [-Wuser-defined-warnings] static_assert(sizeof(__diagnose_non_const_comparator<_Key, _Compare>()), ""); ^ llvm-project/llvm/include/llvm/ProfileData/SampleProf.h:193:29: note: in instantiation of template class 'std::__1::set<std::__1::pair<llvm::StringRef, unsigned long long>, llvm::sampleprof::SampleRecord::CallTargetComparator, std::__1::allocator<std::__1::pair<llvm::StringRef, unsigned long long> > >' requested here const SortedCallTargetSet getSortedCallTargets() const { ^ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__tree:967:5: note: from 'diagnose_if' attribute on '__diagnose_non_const_comparator<std::__1::pair<llvm::StringRef, unsigned long long>, llvm::sampleprof::SampleRecord::CallTargetComparator>': _LIBCPP_DIAGNOSE_WARNING(!std::__invokable<_Compare const&, _Tp const&, _Tp const&>::value, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:1320:21: note: expanded from macro '_LIBCPP_DIAGNOSE_WARNING' __attribute__((diagnose_if(__VA_ARGS__, "warning"))) ^ ~~~~~~~~~~~ 1 warning generated. llvm-svn: 369500
* Revert D65242 "[ELF] More dynamic relocation packing"Fangrui Song2019-08-212-221/+119
| | | | | | | | | This reverts r369488 and r369489. The change broke build bots: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-ubsan/builds/14511 http://lab.llvm.org:8011/builders/lld-x86_64-freebsd/builds/34407 llvm-svn: 369497
* [PPC Docs] Remove duplicate info about __builtin_setrnd()David Zarzycki2019-08-211-49/+1
| | | | | | | This looks like a combination of a copy-and-paste (and paste and paste) error and a commit without reviewing the diff first error. llvm-svn: 369496
* Revert r369472 and r369441Vitaly Buka2019-08-2111-346/+38
| | | | | | check-sanitizer does not work on Linux llvm-svn: 369495
* [Symbol] Remove unused clang headers from TypeAlex Langford2019-08-212-4/+0
| | | | llvm-svn: 369494
* [NFC] Return llvm::StringRef from StringExtractor::GetStringRef.Jonas Devlieghere2019-08-219-81/+71
| | | | | | | | | | This patch removes the two variant of StringExtractor::GetStringRef that return (non-)const references to std::string. The non-const one was being abused to reinitialize the StringExtractor and its uses are replaced by calls to the copy asignment operator. The const variant was refactored to return an actual llvm::StringRef. llvm-svn: 369493
* [NFC] Remove unused function GetHexWithFixedSizeJonas Devlieghere2019-08-214-68/+8
| | | | | | | | The implementation of this function was obviously incorrect, as the result variable was never used. This led me to check if it was actually used anywhere, which came back negative. llvm-svn: 369492
* [NFC] Simplify codeJonas Devlieghere2019-08-211-17/+13
| | | | | | This simplifies the code and updates the comments. llvm-svn: 369491
* Fix 'fall through' annotationVitaly Buka2019-08-211-3/+3
| | | | llvm-svn: 369490
* [ELF][test] Add CHECK lines omitted in r369488Fangrui Song2019-08-211-8/+34
| | | | | | Add append .o to some object file names llvm-svn: 369489
* [ELF] More dynamic relocation packingFangrui Song2019-08-212-111/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently, with Android dynamic relocation packing, only relative relocations are grouped together. This patch implements similar packing for non-relative relocations. The implementation groups non-relative relocations with the same r_info and r_addend, if using RELA. By requiring a minimum group size of 3, this achieves smaller relocation sections. Building Android for an ARM32 device, I see the total size of /system/lib decrease by 392 KB. Grouping by r_info also allows the runtime dynamic linker to implement an 1-entry cache to reduce the number of symbol lookup required. With such 1-entry cache implemented on Android, I'm seeing 10% to 20% reduction in total time spent in runtime linker for several executables that I tested. As a simple correctness check, I've also built x86_64 Android and booted successfully. Differential Revision: https://reviews.llvm.org/D66491 Patch by Vic Yang! llvm-svn: 369488
* libcxx: Rename .hpp files in libcxx/benchmarks to .hNico Weber2019-08-2113-25/+25
| | | | | | | | LLVM uses .h as its extension for header files. Differential Revision: https://reviews.llvm.org/D66509 llvm-svn: 369487
* Autogenerate the shebang lines for tools/opt-viewerChris Bieneman2019-08-216-7/+24
| | | | | | | | | | | | | | | | | | | | | Summary: Since these files depend on the built python modules, they need to use the right python binary to run them. So use configure_file to set the right shebang line. Patch By: cbiesinger (Christian Biesinger) Reviewers: chandlerc, beanz, anemet Reviewed By: anemet Subscribers: compnerd, JDevlieghere, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65983 llvm-svn: 369486
* [NFC] Remove lldb_utility namespace.Jonas Devlieghere2019-08-2111-65/+44
| | | | | | | While generating the Doxygen I noticed this lone namespace that has one class and one function in it. This moves them into lldb_private. llvm-svn: 369485
* Update a few tests that may change the platform to save & restoreJason Molenda2019-08-214-4/+31
| | | | | | | | | | | the platform in the setUp/tearDown methods. I want to migrate the re-instatement of the correct plaform to the setUp base method but haven't had time to look at that yet, so I want to land this handful of fixes until I get to it. Differential revision: https://reviews.llvm.org/D66331 llvm-svn: 369484
* Fix missing __muloti4 function with UBSANEric Fiselier2019-08-211-1/+1
| | | | llvm-svn: 369483
* Attempt to fix MSAN failures in benchmarksEric Fiselier2019-08-211-1/+7
| | | | llvm-svn: 369482
* libcxx: Rename .hpp files in libcxx/test/support to .hNico Weber2019-08-21447-723/+723
| | | | | | | | | | | | | | | | | | | | | | | | | | LLVM uses .h as its extension for header files. Files renamed using: for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done References to the files updated using: for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do a=$(basename $f); echo $a; rg -l $a libcxx | xargs sed -i '' "s/$a/${a%.hpp}.h/"; done HPP include guards updated manually using: for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do echo ${f%.hpp}.h ; done | xargs mvim Differential Revision: https://reviews.llvm.org/D66104 llvm-svn: 369481
* [AArch64][GlobalISel] Add support for narrowScalar of G_ZEXTAmara Emerson2019-08-216-29/+95
| | | | | | | | We do this by merging the source with the high bits set to 0. Differential Revision: https://reviews.llvm.org/D66181 llvm-svn: 369480
* [Doxygen] Document private class members.Jonas Devlieghere2019-08-211-1/+1
| | | | | | | Given that the C++ documentation is meant for LLDB developers it makes sense to include private class members in the output. llvm-svn: 369479
* Remove llvm/utils/git/find-revNico Weber2019-08-201-50/+0
| | | | | | | | | It assumes git-svn, hasn't been touched in ages, and it's replaced by llvm-git in llvm/utils/git-svn. Differential Revision: https://reviews.llvm.org/D66193 llvm-svn: 369478
* [dotest] Don't set the DWARF version override in CFLAGS_EXTRA.Jonas Devlieghere2019-08-202-6/+5
| | | | | | | | We cannot override the DWARF version in the CFLAGS_EXTRA because they are used by tests that explicitly build without debug info. Instead, we pass them through the regular CFLAGS. llvm-svn: 369477
* gn build: Merge r369467Nico Weber2019-08-201-0/+18
| | | | llvm-svn: 369476
* [X86] Automatically generate shift tests. NFCAmaury Sechet2019-08-206-6/+1508
| | | | llvm-svn: 369475
* Add triple to new test to try to pacify botsReid Kleckner2019-08-201-1/+1
| | | | llvm-svn: 369474
* Add TinyPtrVector support for general pointer-like things.Andrew Trick2019-08-204-36/+101
| | | | | | | | | | | | | | | In particular, make TinyPtrVector<PtrIntPair<T *, 1>> work. Remove all unnecessary assumptions that the element type has a formal "null" representation. The important property to maintain is that default-constructed element type has the same internal representation as the default-constructed PointerUnion (all zero bits). Remove the incorrect recursive behavior from PointerUnion::isNull. This was never generally correct because it only recursed over the first type parameter. With variadic templates it's completely unnecessary. llvm-svn: 369473
* [AArch64][asan] fix typo in AsanStats::PrintSebastian Pop2019-08-201-1/+1
| | | | | | | | | This created an infinite loop that timed out several build bots while executing the test in compiler-rt/test/asan/TestCases/atexit_stats.cpp Differential Revision: https://reviews.llvm.org/D60243 llvm-svn: 369472
* Fix assert in XCOFFObjectWriter related to program code csects.Sean Fertile2019-08-201-3/+1
| | | | | | | | Removed code that added program code csects to a collection as part of addressing review comments, but I failed to update an assert affected by the change before commiting. llvm-svn: 369471
* [Attributor] Liveness for internal functions.Stefan Stipanovic2019-08-205-3/+145
| | | | | | | | | | | | For an internal function, if all its call sites are dead, the body of the function is considered dead. Reviewers: jdoerfert, uenoku Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D66155 llvm-svn: 369470
* [X86] Autogenerate vec_* tests. NFCAmaury Sechet2019-08-2010-59/+109
| | | | llvm-svn: 369469
* [Sanitizer] Remove unused functionsAlexandre Ganea2019-08-201-9/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D66503 llvm-svn: 369468
* [RISCV GlobalISel] Adding initial GlobalISel infrastructureDaniel Sanders2019-08-2017-2/+446
| | | | | | | | | | | | | | | | | | | Summary: Add an initial GlobalISel skeleton for RISCV. It can only run ir translator for `ret void`. Patch by Andrew Wei Reviewers: asb, sabuasal, apazos, lenary, simoncook, lewis-revill, edward-jones, rogfer01, xiangzhai, rovka, Petar.Avramovic, mgorny, dsanders Reviewed By: dsanders Subscribers: pzheng, s.egerton, dsanders, hiraditya, rbar, johnrusso, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, psnobl, benna, Jim, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65219 llvm-svn: 369467
* [MemorySSA] Make Phi cleanups consistent.Alina Sbirlea2019-08-202-24/+18
| | | | | | | | | | | | | | | | Summary: Make Phi cleanups consistent: remove self as a trivial Phi and recurse to potentially remove other trivial phis. Reviewers: george.burgess.iv Subscribers: Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66454 llvm-svn: 369466
* [AArch64][GlobalISel] Select logical_imm32 and logical_imm64 patternsJessica Paquette2019-08-205-7/+153
| | | | | | | | | | | | | | Add a GlobalISel equivalent for the logical_imm32_XFORM and logical_imm64_XFORM SDNodeXForms in AArch64InstrFormats.td. - Add select-logical-imm.mir, which contains tests for each imported pattern. - Update select-pr32733.mir and select-scalar-shift-imm.mir, since they now select instructions of this form. Differential Revision: https://reviews.llvm.org/D66162 llvm-svn: 369465
* [MemorySSA] Fix existing phis when inserting defs.Alina Sbirlea2019-08-202-8/+64
| | | | | | | | | | | | | | | | | | | | | | Summary: When inserting a new Def, and inserting Phis in the IDF when needed, also mark the already existing Phis in the IDF as non-optimized, since these may need fixing as well. In the test attached, there is a Phi in the IDF that happens to be trivial, and is wrongfully removed by the call to getLastDef that follows. This is a valid situation and the existing IDF Phis need to marked as "may need fixing" as well. Resolves PR43044. Reviewers: george.burgess.iv Subscribers: Prazek, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66495 llvm-svn: 369464
* Add a missing _VSTD:: before a call to merge. Fixes PR43034. Checked the ↵Marshall Clow2019-08-201-1/+1
| | | | | | rest of 'algorithm' looking for unqualified calls. Didn't find any. llvm-svn: 369463
* Remove assert with tautological compare from XCOFFObjectWriter.Sean Fertile2019-08-201-1/+0
| | | | | | | Remove assert of 'Sec->getCSectType() <= 0x07u' added in r369454, since its always true. llvm-svn: 369462
* [NFC] Fix -Wdocumentation warnings in Utility.Jonas Devlieghere2019-08-207-80/+61
| | | | | | | | This patch fixes a bunch of -Wdocumentation warnings in Utility. I'm sure there are still a bunch outdated comments left, but this fixes the most flagrant inconsistencies that the compiler understands. llvm-svn: 369461
* [AArch64][GlobalISel] Select patterns which use shifted register operandsJessica Paquette2019-08-206-1/+602
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds GlobalISel equivalents for the following from AArch64InstrFormats: - arith_shifted_reg32 - arith_shifted_reg64 And partial support for - logical_shifted_reg32 - logical_shifted_reg32 The only thing missing for the logical cases is support for rotates. Other than the missing support, the transformation is identical for the arithmetic shifted register and the logical shifted register. Lots of tests here: - Add select-arith-shifted-reg.mir to show that we correctly select add and sub instructions which use this pattern. - Add select-logical-shifted-reg.mir to cover patterns which are not shared between the arithmetic and logical cases. - Update addsub-shifted.ll to show that we correctly fold shifts into adds/subs. - Update eon.ll to show that we can select the eon instruction by folding xors. Differential Revision: https://reviews.llvm.org/D66163 llvm-svn: 369460
* [DAGCombiner][X86] Teach visitCONCAT_VECTORS to combine (concat_vectors ↵Craig Topper2019-08-2010-204/+199
| | | | | | | | | | | | | | (concat_vectors X, Y), undef)) -> (concat_vectors X, Y, undef, undef) I also had to add a new combine to X86's combineExtractSubvector to prevent a regression. This helps our vXi1 code see the full concat operation and allow it optimize undef to a zero if there is already a zero in the concat. This helped us use a movzx instead of an AND in some of the tests. In those tests, one concat comes from SelectionDAGBuilder and the second comes from type legalization of v4i1->i4 bitcasts which uses an additional concat. Though these changes weren't my original motivation. I'm looking at making X86ISelLowering's narrowShuffle emit a concat_vectors instead of an insert_subvector since concat_vectors is more canonical during early DAG combine. This patch helps prevent a regression from my experiments with that. Differential Revision: https://reviews.llvm.org/D66456 llvm-svn: 369459
* [DebugInfo] Add debug location to dynamic atexit destructorAlexandre Ganea2019-08-204-8/+31
| | | | | | | | Fixes PR43012 Differential Revision: https://reviews.llvm.org/D66328 llvm-svn: 369458
* Revert [WinEH] Allocate space in funclets stack to save XMM CSRsReid Kleckner2019-08-207-241/+38
| | | | | | | | This reverts r367088 (git commit 9ad565f70ec5fd3531056d7c939302d4ea970c83) And the follow up fix r368631 / e9865b9b31bb2e6bc742dc6fca8f9f9517c3c43e llvm-svn: 369457
OpenPOWER on IntegriCloud