summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [llvm-readelf/llvm-readobj][test] - Convert elf-linker-options.ll to use YAML.Georgii Rymar2019-11-122-12/+30
| | | | | | | | | This converts elf-linker-options.ll to use yaml2obj instead of llc, improves and cleanups it a bit. This opens a road to add an additional tests for checking the broken cases. Differential revision: https://reviews.llvm.org/D70004
* [yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections.Georgii Rymar2019-11-126-1/+306
| | | | | | | SHT_LLVM_LINKER_OPTIONS section contains pairs of null-terminated strings. This patch adds support for them. Differential revision: https://reviews.llvm.org/D69895
* [Attributor] Use must-be-executed-context in align deductionHideto Ueno2019-11-1210-52/+101
| | | | | | | | | | | | | | | Summary: This patch introduces align attribute deduction for callsite argument, function argument, function returned and floating value based on must-be-executed-context. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69797
* [Support] Optimize SHA1 implementationNick Terrell2019-11-112-15/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add inline to the helper functions because gcc-9 won't inline all of them without the hint. I've avoided `__attribute__((always_inline))` because gcc and clang will inline without it, and improves compatibility. * Replace the byte-by-byte copy in update() with endian::readbe32() since perf reports that 1/2 of the time is spent copying into the buffer before this patch. When lld uses --build-id=sha1 it spends 30-45% of CPU in SHA1 depending on the binary (not wall-time since it is parallel). This patch speeds up SHA1 by a factor of 2 on clang-8 and 3 on gcc-6. This leads to a >10% improvement in overall linking time. lld-speed-test benchmarks run on an Intel i9-9900k with Turbo disabled on CPU 0 compiled with clang-9. Stats recorded with `perf stat -r 5`. All inputs are using `--build-id=sha1`. | Input | Before (seconds) | After (seconds) | | --- | --- | --- | | chrome | 2.14 | 1.82 (-15%) | | chrome-icf | 2.56 | 2.29 (-10%) | | clang | 0.65 | 0.53 (-18%) | | clang-fsds | 0.69 | 0.58 (-16%) | | clang-gdb-index | 21.71 | 19.3 (-11%) | | gold | 0.42 | 0.34 (-19%) | | gold-fsds | 0.431 | 0.355 (-17%) | | linux-kernel | 0.625 | 0.575 (-8%) | | llvm-as | 0.045 | 0.039 (-14%) | | llvm-as-fsds | 0.035 | 0.039 (-11%) | | mozilla | 11.3 | 9.8 (-13%) | | mozilla-gc | 11.84 | 10.36 (-12%) | | mozilla-O0 | 8.2 | 5.84 (-28%) | | scylla | 5.59 | 4.52 (-19%) | Reviewed By: ruiu, MaskRay Differential Revision: https://reviews.llvm.org/D69295
* AMDGPU/SI: make ~SIScheduleBlockCreator trivialFangrui Song2019-11-112-6/+2
|
* [PDB] Make pdb::DbiModuleDescriptor destructor trivialFangrui Song2019-11-112-3/+0
|
* [SLP] Look-ahead operand reordering heuristic.Vasileios Porpodas2019-11-113-137/+524
| | | | | | | | | | | | | | Summary: This patch introduces a new heuristic for guiding operand reordering. The new "look-ahead" heuristic can look beyond the immediate predecessors. This helps break ties when the immediate predecessors have identical opcodes (see lit test for examples). Reviewers: RKSimon, ABataev, dtemirbulatov, Ayal, hfinkel, rnk Reviewed By: RKSimon, dtemirbulatov Subscribers: xbolva00, Carrot, hiraditya, phosek, rnk, rcorcs, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60897
* Fix null dereference in yaml::Document::skipThomas Finch2019-11-112-2/+13
| | | | | | | | | | | | | | | | Summary: The attached test case replicates a null dereference crash in `yaml::Document::skip()`. This was fixed by adding a check and early return in the method. Reviewers: Bigcheese, hintonda, beanz Reviewed By: hintonda Subscribers: hiraditya, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69974
* gn build: Merge e9a06e06064LLVM GN Syncbot2019-11-121-0/+1
|
* [VFABI] Read/Write functions for the VFABI attribute.Francesco Petrogalli2019-11-128-5/+170
| | | | | | | | | | | | | | The attribute is stored at the `FunctionIndex` attribute set, with the name "vector-function-abi-variant". The get/set methods of the attribute have assertion to verify that: 1. Each name in the attribute is a valid VFABI mangled name. 2. Each name in the attribute correspond to a function declared in the module. Differential Revision: https://reviews.llvm.org/D69976
* Add rpath to liblldb so vendors can ship their own python framework (or others)António Afonso2019-11-111-0/+5
| | | | | | | | | | | | | | | | | Summary: I want to be able to specify which python framework to use for lldb in macos. With python2.7 we could just rely on the MacOS one but python3.7 is not shipped with the OS. An alternative is to use the one shipped with Xcode but that could be path dependent or maybe the user doesn't have Xcode installed at all. A definite solution is to just ship a python framework with lldb. To make this possible I added "@loader_path/../../../" to the rpath so it points to the same directory as the LLDB.framework, this way we can just drop any frameworks there. Reviewers: hhb, sgraenitz, xiaobai, smeenai, beanz, labath Reviewed By: labath Subscribers: beanz, labath, mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D69931
* Add InstCombine/InstructionSimplify support for Freeze Instructionaqjune2019-11-128-0/+88
| | | | | | | | | | | | | | | Summary: - Add llvm::SimplifyFreezeInst - Add InstCombiner::visitFreeze - Add llvm tests Reviewers: majnemer, sanjoy, reames, lebedev.ri, spatel Reviewed By: reames, lebedev.ri Subscribers: reames, lebedev.ri, filcab, regehr, trentxintong, llvm-commits Differential Revision: https://reviews.llvm.org/D29013
* [NFC] Fix test case after edab7dd426249bd40059b49b255ba9cc5b784753Nemanja Ivanovic2019-11-112-9/+37
| | | | | | The author of the patch forgot to add -verify-machineinstrs to the RUN lines which would have made the issue appear on all bots. Added that as well as a fix for the undefined register issue (after the hoisting).
* [X86] Remove setOperationAction lines that say to promote MVT::i1Craig Topper2019-11-111-6/+0
| | | | | | | | MVT::i1 should be removed by type legalization before we reach any code that would act on the promote action. Mainly to avoid replicating this for strict FP versions of these operations.
* [IR] Resolve an error at freeze's unit testsJuneyoung Lee2019-11-121-1/+1
|
* [MC] Make MCFragment trivially destructibleFangrui Song2019-11-112-4/+0
|
* [IR] Redefine Freeze instructionaqjune2019-11-1226-202/+301
| | | | | | | | | | | | | | | | | | | | Summary: This patch redefines freeze instruction from being UnaryOperator to a subclass of UnaryInstruction. ConstantExpr freeze is removed, as discussed in the previous review. FreezeOperator is not added because there's no ConstantExpr freeze. `freeze i8* null` test is added to `test/Bindings/llvm-c/freeze.ll` as well, because the null pointer-related bug in `tools/llvm-c/echo.cpp` is now fixed. InstVisitor has visitFreeze now because freeze is not unaryop anymore. Reviewers: whitequark, deadalnix, craig.topper, jdoerfert, lebedev.ri Reviewed By: craig.topper, lebedev.ri Subscribers: regehr, nlopes, mehdi_amini, hiraditya, steven_wu, dexonsmith, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69932
* clang/Modules: Clean up modules on error in ReadASTDuncan P. N. Exon Smith2019-11-111-14/+18
| | | | | | | | ReadASTBlock and ReadASTExtensions can both return failures. Be consistent and remove all the just-loaded modules, just like when ReadASTCore returns failures. https://reviews.llvm.org/D70055
* [X86] Remove some else branches after checking for !useSoftFloat() that set ↵Craig Topper2019-11-111-9/+0
| | | | | | | | | operations to Expand. If we're using soft floats, then these operations shoudl be softened during type legalization. They'll never get to LegalizeVectorOps or LegalizeDAG so they don't need to be Expanded there.
* clang/Modules: Add missing diagnostics for malformed AST filesDuncan P. N. Exon Smith2019-11-111-2/+6
| | | | | | | These were found via an audit. In the case of `ParseLineTable` this is actually dead code, since parsing the line table always succeeds, but it's prudent to be defensive since it's possible an assertion there could be converted to a `true` return in the future.
* [lldb] Re-enable VSCode testsJonas Devlieghere2019-11-118-24/+3
| | | | | | | The VSCode tests were all disabled on macOS because the implementation had some issues that resulted in flakiness on Darwin. It seems most of these issues have been addressed. I've re-enabled all the tests that consistently passed locally.
* [X86] Add avx512 command lines to vector-constrained-fp-intrinsics.ll. NFCCraig Topper2019-11-111-111/+234
|
* [X86] Autogenerate checks in fp-intrinsics.ll. Split fma tests off to ↵Craig Topper2019-11-112-119/+368
| | | | fp-intrinsics-fma.ll. NFC
* clang/Modules: Split loop in ReadAST between failable and notDuncan P. N. Exon Smith2019-11-111-1/+7
| | | | | | | | | | | | | Split a loop in ReadAST that visits the just-loaded module chain, between an initial loop that reads further from the ASTs (and can fail) and a second loop that does some preloading (and cannot fail). This makes it less likely for a reading failure to affect the AST. This is not fixing a known bug and the behaviour change may not be observable, it's just part of an audit to look at all of the error handling in the ASTReader. https://reviews.llvm.org/D70056
* clang/Modules: Use range-based for in ASTReader::ReadAST, NFCDuncan P. N. Exon Smith2019-11-111-11/+7
|
* [PowerPC][XCOFF] Add support for zero initialized global values.Sean Fertile2019-11-113-28/+115
| | | | | | | | For XCOFF, globals mapped into the .bss section are linked as COMMON definitions. This behaviour is incorrect for zero initialized data, so emit those to the .data section instead. Differential Revision: https://reviews.llvm.org/D69528
* Fixing PowerPC llc test cases for Disable hoisting MI to hotter basic blocks ↵Victor Huang2019-11-112-7/+7
| | | | by adding powerpc triple
* clang/Modules: Delay err_module_file_conflict if a diagnostic is in flightDuncan P. N. Exon Smith2019-11-114-14/+19
| | | | | | | As part of an audit of whether all errors are being reported from the ASTReader, delay err_module_file_conflict if a diagnostic is already in flight when it is hit. This required plumbing an extra argument through the delayed diagnostic mechanics in DiagnosticsEngine.
* [Reproducer] Quit the debugger after generating a reproducerJonas Devlieghere2019-11-111-2/+4
| | | | | | | Currently nothing prevents you from continuing your debug session after generating the reproducer. This can cause the reproducer to end up in an inconsistent state. Most of the time this doesn't matter, but I want to prevent this from causing bugs in the future.
* Disable hoisting MI to hotter basic blocksVictor Huang2019-11-113-0/+489
| | | | | | | | | In current Hoist() function of machine licm pass, it will not check the source and destination basic block frequencies that a instruction is hoisted from/to. There is a chance that instruction is hoisted from a cold to a hot basic block. In this patch, we add options to disable machine instruction hoisting if destination block is hotter. Differential Revision: https://reviews.llvm.org/D63676
* [AArch64] Update for ExynosEvandro Menezes2019-11-111-1/+1
| | | | Fix the costs of FP register moves.
* [AArch64] Add new scheduling predicatesEvandro Menezes2019-11-112-1/+74
| | | | Add new scheduling predicates to identify more ASIMD forms.
* clang-format: fix a typo introduced by the previous changeSylvestre Ledru2019-11-111-1/+1
|
* Replace tabs with spaces. (NFC)Adrian Prantl2019-11-111-11/+11
|
* Fix a regression in macOS-style path remapping.Adrian Prantl2019-11-115-25/+42
| | | | | | | | | | | | | | | | When we switched to the LLVM .debug_line parser, the .dSYM-style path remapping logic stopped working for relative paths because of how RemapSourceFile silently fails for relative paths. This patch both makes the code more readable and fixes this particular bug. One interesting thing I learned is that Module::RemapSourceFile() is a macOS-only code path that operates on on the lldb::Module level and is completely separate from target.source-map, which operates on a per-Target level. Differential Revision: https://reviews.llvm.org/D70037 rdar://problem/56924558
* Add a testcase for .dSYM path remapping dictionaries.Adrian Prantl2019-11-113-0/+69
| | | | rdar://problem/56924558
* [ModuloSchedule] Fix modulo expansion for data loop carried dependencies.Thomas Raoux2019-11-115-21/+195
| | | | | | | | | | | | | The new experimental expansion has a problem when a value has a data dependency with an instruction from a previous stage. This is due to the way we peel out the kernel. To fix that I'm changing the way we peel out the kernel. We now peel the kernel NumberStage - 1 times. The code would be correct at this point if we didn't have to handle cases where the loop iteration is smaller than the number of stages. To handle this case we move instructions between different epilogues based on their stage and remap the PHI instructions correctly. Differential Revision: https://reviews.llvm.org/D69538
* [OPENMP50]Generalize handling of context matching/scoring.Alexey Bataev2019-11-1110-168/+335
| | | | | | | | | | | | | | Summary: Untie context matching/scoring from the attribute for declare variant directive to simplify future uses in other context-dependent directives. Reviewers: jdoerfert Subscribers: guansong, kkwli0, caomhin, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D69952
* [OPENMP50]Add support for nested atomic and simd constructs inAlexey Bataev2019-11-113-169/+180
| | | | | | | | simd-based directives. According to OpenMP 5.0 standard, ordered simd, atomic and simd directives are allowed as nested directives in the simd-based directives.
* Add missing override modifiers for FileCheckExpressionAST::eval() overrides.Simon Pilgrim2019-11-111-3/+3
|
* Make FileCheckNumericVariable::getDefLineNumber const. NFCSimon Pilgrim2019-11-111-1/+1
| | | | Fixes cppcheck warning.
* [debuginfo] Update test to account for missing __debug_macinfoJonas Devlieghere2019-11-111-2/+1
| | | | We no longer emit this section if it's empty.
* [clangd] Fix crash in DefineInline::prepare()Sam McCall2019-11-112-1/+4
|
* [libc++][P0980] Marked member functions move/copy/assign of char_traits ↵Michael Park2019-11-1116-56/+297
| | | | | | | | | | | | | | constexpr. Reviewers: ldionne, EricWF, mclow.lists Reviewed By: ldionne Subscribers: christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68840
* [libTooling] Further simplify `Stencil` type and introduce `MatchComputation`.Yitzhak Mandelbaum2019-11-118-107/+106
| | | | | | | | | | | | | | | | | | | | Summary: This revision introduces a new interface `MatchComputation` which generalizes the `Stencil` interface and replaces the `std::function` interface of `MatchConsumer`. With this revision, `Stencil` (as an abstraction) becomes just one collection of implementations of `MatchComputation<std::string>`. Correspondingly, we remove the `Stencil` class entirely in favor of a simple type alias, deprecate `MatchConsumer` and change all functions that accepted `MatchConsumer<std::string>` to use `MatchComputation<std::string>` instead. Reviewers: gribozavr Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D69802
* [scudo][standalone] Match function name change to bionic name change.Christopher Ferris2019-11-111-9/+1
| | | | | | | | | | | | | | Summary: Bionic was modified to have all function names consistent. Modify the code and get rid of the special case for bionic since it's no longer needed. Reviewers: cryptoad Reviewed By: cryptoad Subscribers: srhines, llvm-commits, #sanitizers Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D70031
* [ModuloSchedule] Do target loop analysis before peeling.Thomas Raoux2019-11-112-4/+4
| | | | | | | | | Simple change to call target hook analyzeLoopForPipelining before changing the loop. After peeling analyzing the loop may be more complicated for target that don't have a loop instruction. This doesn't affect Hexagone and PPC as they have hardware loop instructions. Differential Revision: https://reviews.llvm.org/D69912
* Fix errors where we thought we were checking for labels but weren't due to ↵Kevin P. Neal2019-11-111-30/+30
| | | | | | use of the wrong prefix. Spotted by Craig Topper in reviewing D69275.
* [CGP] Make ICMP_EQ use CR result of ICMP_S(L|G)T dominatorsYi-Hong Lyu2019-11-116-149/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example: long long test(long long a, long long b) { if (a << b > 0) return b; if (a << b < 0) return a; return a*b; } Produces: sld. 5, 3, 4 ble 0, .LBB0_2 mr 3, 4 blr .LBB0_2: # %if.end cmpldi 5, 0 li 5, 1 isel 4, 4, 5, 2 mulld 3, 4, 3 blr But the compare (cmpldi 5, 0) is redundant and can be removed (CR0 already contains the result of that comparison). The root cause of this is that LLVM converts signed comparisons into equality comparison based on dominance. Equality comparisons are unsigned by default, so we get either a record-form or cmp (without the l for logical) feeding a cmpl. That is the situation we want to avoid here. Differential Revision: https://reviews.llvm.org/D60506
* [Support] Add erase() to json::ObjectSam McCall2019-11-112-5/+37
|
OpenPOWER on IntegriCloud