summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* AMDGPU/GlobalISel: RegBankSelect for G_ZEXTLOAD/G_SEXTLOADMatt Arsenault2019-09-104-3/+206
| | | | llvm-svn: 371536
* AMDGPU/GlobalISel: Legalize constant 32-bit loadsMatt Arsenault2019-09-104-0/+87
| | | | | | | Legalize by casting to a 64-bit constant address. This isn't how the DAG implements it, but it should. llvm-svn: 371535
* [RISCV] Support llvm-objdump -M no-aliases and -M numericSam Elliott2019-09-1058-80/+100
| | | | | | | | | | | | | | | | | | | | | | | | Summary: Now that llvm-objdump allows target-specific options, we match the `no-aliases` and `numeric` options for RISC-V, as supported by GNU objdump. This is done by overriding the variables used for the command-line options, so that the command-line options are still supported. This patch updates all tests using `llvm-objdump -riscv-no-aliases` to use `llvm-objdump -M no-aliases`. Reviewers: luismarques, asb Reviewed By: luismarques, asb Subscribers: pzheng, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66139 llvm-svn: 371534
* AMDGPU/GlobalISel: First pass at attempting to legalize load/storesMatt Arsenault2019-09-1013-1141/+55834
| | | | | | | | There's still a lot more to do, but this handles decomposing due to alignment. I've gotten it to the point where nothing crashes or infinite loops the legalizer. llvm-svn: 371533
* Implement DW_OP_convertAdrian Prantl2019-09-107-32/+423
| | | | | | | | | | | | | | | | | | | | | | This patch adds basic support for DW_OP_convert[1] for integer types. Recent versions of LLVM's optimizer may insert this opcode into DWARF expressions. DW_OP_convert is effectively a type cast operation that takes a reference to a base type DIE (or zero) and then casts the value at the top of the DWARF stack to that type. Internally this works by changing the bit size of the APInt that is used as backing storage for LLDB's DWARF stack. I managed to write a unit test for this by implementing a mock YAML object file / module that takes debug info sections in yaml2obj format. [1] Typed DWARF stack. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1 <rdar://problem/48167864> Differential Revision: https://reviews.llvm.org/D67369 llvm-svn: 371532
* [RISCV] Add Option for Printing Architectural Register NamesSam Elliott2019-09-105-2/+510
| | | | | | | | | | | | | | | | | | | | | | Summary: This is an option primarily to use during testing. Instead of always printing registers using their ABI names, this allows a user to request they are printed with their architectural name. This is then used in the register constraint tests to ensure the mapping between architectural and abi names is correct. Reviewers: asb, luismarques Reviewed By: asb Subscribers: pzheng, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65950 llvm-svn: 371531
* Don't emit .gnu_pubnames when tuning for LLDB.Adrian Prantl2019-09-102-2/+1
| | | | | | | | | | | | | | | | LLDB reads the various .apple* accelerator tables (and in the near future: the DWARF 5 accelerator tables) which should make .gnu_pubnames redundant. This changes the Clang driver to no longer pass -ggnu-pubnames when tuning for LLDB. Thanks to David Blaikie for pointing this out! http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190422/thread.html#646062 rdar://problem/50142073 Differential Revision: https://reviews.llvm.org/D67373 llvm-svn: 371530
* [x86] add a test for BreakFalseDeps; NFCSanjay Patel2019-09-101-0/+20
| | | | | | As discussed in D67363 llvm-svn: 371528
* Revert "[utils] Implement the llvm-locstats tool"Djordje Todorovic2019-09-106-315/+0
| | | | | | This reverts commit rL371520. llvm-svn: 371527
* [ARM] add test for BreakFalseDeps with minsize attribute; NFCSanjay Patel2019-09-101-0/+32
| | | | llvm-svn: 371526
* [X86] Add AVX partial dependency tests as noted on D67363Simon Pilgrim2019-09-101-29/+60
| | | | llvm-svn: 371525
* [ARM] auto-generate complete test checks; NFCSanjay Patel2019-09-101-9/+28
| | | | llvm-svn: 371524
* [VectorUtils] Remove unused include. [NFC]Florian Hahn2019-09-101-1/+1
| | | | | | | | | | | | Patch by Francesco Petrogalli <francesco.petrogalli@arm.com> Reviewers: fhahn Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D67365 llvm-svn: 371523
* [clang][codegen][NFC] Make test patterns more permissive.Clement Courbet2019-09-101-2/+1
| | | | | | | See the discussion in: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20190909/692736.html llvm-svn: 371522
* [CMake] Don't pass all LLVM_COMPILE_FLAGS to the C compilerDavid Zarzycki2019-09-101-1/+8
| | | | | | | | GCC (unlike clang!) warns about C++ flags when compiling C. https://reviews.llvm.org/D67171 llvm-svn: 371521
* [utils] Implement the llvm-locstats toolDjordje Todorovic2019-09-106-0/+315
| | | | | | | | | | | | | | | | | | | The tool reports verbose output for the DWARF debug location coverage. The llvm-locstats for each variable or formal parameter DIE computes what percentage from the code section bytes, where it is in scope, it has location description. The line 0 shows the number (and the percentage) of DIEs with no location information, but the line 100 shows the number (and the percentage) of DIEs where there is location information in all code section bytes (where the variable or parameter is in the scope). The line 50..59 shows the number (and the percentage) of DIEs where the location information is in between 50 and 59 percentage of its scope covered. The tool will be very useful for tracking improvements regarding the "debugging optimized code" support with LLVM ecosystem. Differential Revision: https://reviews.llvm.org/D66526 llvm-svn: 371520
* [NFC][InstCombine] PR43251 - valid for other predicates tooRoman Lebedev2019-09-101-2/+82
| | | | llvm-svn: 371519
* [InstCombine] Use SimplifyFMulInst to simplify multiply in fma.Florian Hahn2019-09-102-13/+10
| | | | | | | | | | | | | | This allows us to fold fma's that multiply with 0.0. Also, the multiply by 1.0 case is handled there as well. The fneg/fabs cases are not handled by SimplifyFMulInst, so we need to keep them. Reviewers: spatel, anemet, lebedev.ri Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D67351 llvm-svn: 371518
* [InstCombine] Precommit tests for D67351.Florian Hahn2019-09-101-0/+86
| | | | llvm-svn: 371517
* [BreakFalseDeps] fix typos/grammar in documentation comment; NFCSanjay Patel2019-09-101-4/+3
| | | | llvm-svn: 371516
* [Object] Implement relocation resolver for COFF ARM/ARM64Martin Storsjo2019-09-105-2/+647
| | | | | | | | | | Adding testscases for this via llvm-dwarfdump. Also add testcases for the existing resolver support for X86. Differential Revision: https://reviews.llvm.org/D67340 llvm-svn: 371515
* [ELF][test] Make tests more tolerant to exact symbol addressesFangrui Song2019-09-1022-234/+166
| | | | | | Delete relocation-local.s and relocation-shared.s - covered by various tests llvm-svn: 371514
* Fix the "git modified" issue on the preserve-comments-crlf.s.Haojian Wu2019-09-101-2/+4
| | | | | | | | | | | | | | | | | | Summary: rL371473 corrected the line ending (to crlf) in preserve-comments-crlf.s, but it causes a wired issue on git repository (I ran git pull today, it showed a local change of that file even I did not change anything). Reviewers: gribozavr Reviewed By: gribozavr Subscribers: llvm-commits, cfe-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67391 llvm-svn: 371513
* [lldb] Readd missing functionalities/breakpoint testsRaphael Isemann2019-09-10108-0/+5369
| | | | | | | It seems when I restructured the test folders the functionalities/breakpoint was deleted. This just reverts this change and re-adds the tests. llvm-svn: 371512
* [Alignment][NFC] Use llvm::Align for TargetLowering::getPrefLoopAlignmentGuillaume Chatelet2019-09-107-28/+32
| | | | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Reviewed By: courbet Subscribers: wuzish, arsenm, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67386 llvm-svn: 371511
* Reland [DWARF] Add a unit test for DWARFUnit::getLength().Igor Kudrin2019-09-101-0/+42
| | | | | | | | | | | This is a follow-up of rL369529, where the return value of DWARFUnit::getLength() was changed from uint32_t to uint64_t. The test checks that a unit header with Length > 4G can be successfully parsed and the value of the Length field is not truncated. Differential Revision: https://reviews.llvm.org/D67276 llvm-svn: 371510
* [LLD][COFF] Add index to disambiguate archive members when using -wholearchiveRui Ueyama2019-09-102-1/+32
| | | | | | | | | | | | | Patch by Markus Böck. PR42951: When linking an archive with members that have the same name linking fails when using the -wholearchive option. This patch passes the index of the member in the archive to the offset parameter to disambiguate the member. Differential Revision: https://reviews.llvm.org/D66239 llvm-svn: 371509
* [AMDGPU]: PHI Elimination hooks added for custom COPY insertion.Alexander Timofeev2019-09-107-20/+140
| | | | | | | | Reviewers: rampitec, vpykhtin Differential Revision: https://reviews.llvm.org/D67101 llvm-svn: 371508
* Revert "Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of ↵Dmitri Gribenko2019-09-1042-2143/+3402
| | | | | | | | | CodeGen into opt pipeline."" This reverts commit r371502, it broke tests (clang/test/CodeGenCXX/auto-var-init.cpp). llvm-svn: 371507
* [llvm-dwarfdump] Add additional stats fieldsDjordje Todorovic2019-09-102-13/+416
| | | | | | | | | | The additional fields will be parsed by the llvm-locstats tool in order to produce more human readable output of the DWARF debug location quality generated. Differential Revision: https://reviews.llvm.org/D66525 llvm-svn: 371506
* Revert "[DWARF] Add a unit test for DWARFUnit::getLength()" because it broke ↵Igor Kudrin2019-09-101-42/+0
| | | | | | ASAN bot. llvm-svn: 371505
* [clangd] Collect location of macro definition in the ParsedASTHaojian Wu2019-09-105-42/+52
| | | | | | | | | | | | allows semantic hightlighting macro definition Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67264 llvm-svn: 371504
* [ExpandMemCmp] Add lit.local.cfgClement Courbet2019-09-101-0/+3
| | | | | | | | | | | To prevent AArch64 tests from running when the target is not compiled. Fixes r371502: /home/buildslave/ps4-buildslave4/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/llvm.src/test/Transforms/ExpandMemCmp/AArch64/memcmp.ll:11:15: error: CHECK-NEXT: expected string not found in input ; CHECK-NEXT: [[TMP0:%.*]] = bitcast i8* [[S1:%.*]] to i64* llvm-svn: 371503
* Reland "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into ↵Clement Courbet2019-09-1042-3402/+2143
| | | | | | | | opt pipeline." With a fix for sanitizer breakage (see explanation in D60318). llvm-svn: 371502
* [yaml2obj] Set p_align to the maximum sh_addralign of contained sectionsFangrui Song2019-09-102-60/+52
| | | | | | | | | | | | | | | | | | | | | | | | The address difference between two sections in a PT_LOAD is a constant. Consider a hypothetical case (pagesize can be very small, say, 4). ``` .text sh_addralign=4 .text.hot sh_addralign=16 ``` If we set p_align to 4, the PT_LOAD will be loaded at an address which is a multiple of 4. The address of .text.hot is guaranteed to be a multiple of 4, but not necessarily a multiple of 16. This patch deletes the constraint if (SHeader->sh_offset == PHeader.p_offset) Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D67260 llvm-svn: 371501
* [DWARF] Add a unit test for DWARFUnit::getLength().Igor Kudrin2019-09-101-0/+42
| | | | | | | | | | | This is a follow-up of rL369529, where the return value of DWARFUnit::getLength() was changed from uint32_t to uint64_t. The test checks that a unit header with Length > 4G can be successfully parsed and the value of the Length field is not truncated. Differential Revision: https://reviews.llvm.org/D67276 llvm-svn: 371499
* [Alignment] Use Align for TargetLowering::MinStackArgumentAlignmentGuillaume Chatelet2019-09-105-22/+22
| | | | | | | | | | | | | | | | | Summary: This is patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Reviewers: courbet Subscribers: sdardis, nemanjai, hiraditya, kbarton, jrtc27, MaskRay, atanasyan, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67288 llvm-svn: 371498
* Revert Remove REQUIRES:shell from tests that pass for me on WindowsJames Henderson2019-09-1025-28/+54
| | | | | | This reverts r371478 (git commit a9980f60ce083fa6d5fd03c12c58ca0b293e3d60) llvm-svn: 371497
* [RISCV] Make -march=rv{32,64}gc the default in RISC-V LinuxRoger Ferrer Ibanez2019-09-104-10/+27
| | | | | | | | This is the logical follow-up of D65634. Differential Revision: https://reviews.llvm.org/D66003 llvm-svn: 371496
* [clangd] some tweaks on the vscode readme, NFCHaojian Wu2019-09-101-3/+3
| | | | llvm-svn: 371495
* [RISCV] Default to ilp32d/lp64d in RISC-V LinuxRoger Ferrer Ibanez2019-09-104-11/+13
| | | | | | | | | | When running clang as a native compiler in RISC-V Linux the flag -mabi=ilp32d / -mabi=lp64d is always mandatory. This change makes it the default there. Differential Revision: https://reviews.llvm.org/D65634 llvm-svn: 371494
* [LegalizeTypes] Teach SoftenFloatOp_SELECT_CC to handle operand 2 or 3 being ↵Craig Topper2019-09-103-3/+113
| | | | | | | | | | | softened. This can only happen on X86 when fp128 is a legal type, but we go through softening to generate libcalls. This causes fp128 to be softened to fp128 instead of an integer type. This can be removed if D67128 lands. llvm-svn: 371493
* [RISCV] Move architecture parsing code into its own functionRoger Ferrer Ibanez2019-09-101-140/+150
| | | | | | | | | | | I plan to reuse it in a later patch. This is almost NFC except a small change in control flow when diagnosing +d without +f. Differential Revision: https://reviews.llvm.org/D66002 llvm-svn: 371492
* [LLDB] FreeBSD fix new SetFile call.David Carlier2019-09-101-1/+1
| | | | llvm-svn: 371491
* gn build: Merge r371488Nico Weber2019-09-101-1/+0
| | | | llvm-svn: 371489
* Revert "clang-misexpect: Profile Guided Validation of Performance ↵Petr Hosek2019-09-1040-1704/+26
| | | | | | | | Annotations in LLVM" This reverts commit r371484: this broke sanitizer-x86_64-linux-fast bot. llvm-svn: 371488
* [X86] Add broadcast load unfolding support for VCMPPS/PD.Craig Topper2019-09-102-25/+36
| | | | llvm-svn: 371487
* [X86] Add broadcast load unfold tests for VCMPPS/PD.Craig Topper2019-09-101-0/+221
| | | | llvm-svn: 371486
* gn build: Merge r371484Nico Weber2019-09-101-0/+1
| | | | llvm-svn: 371485
* clang-misexpect: Profile Guided Validation of Performance Annotations in LLVMPetr Hosek2019-09-1040-26/+1704
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the basic functionality for reporting potentially incorrect usage of __builtin_expect() by comparing the developer's annotation against a collected PGO profile. A more detailed proposal and discussion appears on the CFE-dev mailing list (http://lists.llvm.org/pipermail/cfe-dev/2019-July/062971.html) and a prototype of the initial frontend changes appear here in D65300 We revised the work in D65300 by moving the misexpect check into the LLVM backend, and adding support for IR and sampling based profiles, in addition to frontend instrumentation. We add new misexpect metadata tags to those instructions directly influenced by the llvm.expect intrinsic (branch, switch, and select) when lowering the intrinsics. The misexpect metadata contains information about the expected target of the intrinsic so that we can check against the correct PGO counter when emitting diagnostics, and the compiler's values for the LikelyBranchWeight and UnlikelyBranchWeight. We use these branch weight values to determine when to emit the diagnostic to the user. A future patch should address the comment at the top of LowerExpectIntrisic.cpp to hoist the LikelyBranchWeight and UnlikelyBranchWeight values into a shared space that can be accessed outside of the LowerExpectIntrinsic pass. Once that is done, the misexpect metadata can be updated to be smaller. In the long term, it is possible to reconstruct portions of the misexpect metadata from the existing profile data. However, we have avoided this to keep the code simple, and because some kind of metadata tag will be required to identify which branch/switch/select instructions are influenced by the use of llvm.expect Patch By: paulkirth Differential Revision: https://reviews.llvm.org/D66324 llvm-svn: 371484
OpenPOWER on IntegriCloud