- Jul 26, 2021
-
-
Caroline Concatto authored
This patch implements vector_splice in tablegen for: a) when the immediate is equal to -1 (Imm==1) and uses: INSR + LASTB For instance : @llvm.experimental.vector.splice(Vector_1, Vector_2, -1) @llvm.experimental.vector.splice(<A,B,C,D>, <E,F,G,H>, 1) ==> <D, E, F, G> LAST RegLast, Vector_1 // RegLast = D INSR Res, (Vector_1 >> 1), RegLast // Res = D + E, F, G Differential Revision: https://reviews.llvm.org/D105633 -
Simon Pilgrim authored
Splatting the lower xmm with vinsertf128 is at least as quick as vperm2f128, and a lot faster on some AMD targets. First step towards PR50053
-
Simon Pilgrim authored
-
Sam McCall authored
This reverts commit 253b8145. This doesn't actually fix anything - I should stop guessing. See https://github.com/clangd/clangd/issues/800 for update
-
Cullen Rhodes authored
Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D106635
-
David Sherwood authored
I have added a new FastMathFlags parameter to getArithmeticReductionCost to indicate what type of reduction we are performing: 1. Tree-wise. This is the typical fast-math reduction that involves continually splitting a vector up into halves and adding each half together until we get a scalar result. This is the default behaviour for integers, whereas for floating point we only do this if reassociation is allowed. 2. Ordered. This now allows us to estimate the cost of performing a strict vector reduction by treating it as a series of scalar operations in lane order. This is the case when FP reassociation is not permitted. For scalable vectors this is more difficult because at compile time we do not know how many lanes there are, and so we use the worst case maximum vscale value. I have also fixed getTypeBasedIntrinsicInstrCost to pass in the FastMathFlags, which meant fixing up some X86 tests where we always assumed the vector.reduce.fadd/mul intrinsics were 'fast'. New tests have been added here: Analysis/CostModel/AArch64/reduce-fadd.ll Analysis/CostModel/AArch64/sve-intrinsics.ll Transforms/LoopVectorize/AArch64/strict-fadd-cost.ll Transforms/LoopVectorize/AArch64/sve-strict-fadd-cost.ll Differential Revision: https://reviews.llvm.org/D105432
-
Fraser Cormack authored
This patch extends support for (scalable-vector) splats in the DAGCombiner via the `ISD::matchBinaryPredicate` function, which enable a variety of simple combines of constants. Users of this function may now have to distinguish between `BUILD_VECTOR` and `SPLAT_VECTOR` vector operands. The way of dealing with this in-tree follows the approach added for `ISD::matchUnaryPredicate` implemented in D94501. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D106575
-
Kadir Cetinkaya authored
This reverts commit 2aa0cf19. Get rid of reference to the temporary.
-
Jon Chesterfield authored
Default to building the amdgpu plugin to use dlopen when hsa is not found instead of disabling it. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D106600
-
Jon Chesterfield authored
Suppress only current warning on openmp-clang-x86_64-linux-debian Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D106777
-
Vladislav Vinogradov authored
Add 'enconding' attribute visitor. Without it ASM printer doesn't use attribute aliases for 'enconding'. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D105554
-
Guillaume Chatelet authored
-
Lang Hames authored
This allows ORC to execute code containing Objective-C and Swift classes and methods (provided that the language runtime is loaded into the executor).
-
Marcel Koester authored
This CL adds a new RegionBranchTerminatorOpInterface to query information about operands that can be passed to successor regions. Similar to the BranchOpInterface, it allows to freely define the involved operands. However, in contrast to the BranchOpInterface, it expects an additional region number to distinguish between various use cases which might require different operands passed to different regions. Moreover, we added new utility functions (namely getMutableRegionBranchSuccessorOperands and getRegionBranchSuccessorOperands) to query (mutable) operand ranges for operations equiped with the ReturnLike trait and/or implementing the newly added interface. This simplifies reasoning about terminators in the scope of the nested regions. We also adjusted the SCF.ConditionOp to benefit from the newly added capabilities. Differential Revision: https://reviews.llvm.org/D105018
-
Michael Kruse authored
This patch adds the -fminimize-whitespace with the following effects: * If combined with -E, remove as much non-line-breaking whitespace as possible. * If combined with -E -P, removes as much whitespace as possible, including line-breaks. The motivation is to reduce the amount of insignificant changes in the preprocessed output with source files where only whitespace has been changed (add/remove comments, clang-format, etc.) which is in particular useful with ccache. A patch for ccache for using this flag has been proposed to ccache as well: https://github.com/ccache/ccache/pull/815, which will use -fnormalize-whitespace when clang-13 has been detected, and additionally uses -P in "unify_mode". ccache already had a unify_mode in an older version which was removed because of problems that using the preprocessor itself does not have (such that the custom tokenizer did not recognize C++11 raw strings). This patch slightly reorganizes which part is responsible for adding newlines that are required for semantics. It is now either startNewLineIfNeeded() or MoveToLine() but never both; this avoids the ShouldUpdateCurrentLine workaround and avoids redundant lines being inserted in some cases. It also fixes a mandatory newline not inserted after a _Pragma("...") that is expanded into a #pragma. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D104601
-
Yuanfang Chen authored
collection Fixes PR51210.
-
Esme-Yi authored
to encode the constants for DW_AT_data_member_location. Summary: In DWARF v3, DW_FORM_data4/8 in DW_AT_data_member_location are interpreted as location list pointers. Interpreting constants as pointers is not expected, so we use DW_FORM_udata to encode the constants. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D105687
-
Mehdi Amini authored
This reverts commit 579cc9ad. This breaks on Windows.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals.
-
Esme-Yi authored
Summary: yaml2obj shouldn't create the string table that isn't needed - doing so wastes time and disk space. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D106420 -
Dave Airlie authored
This adds the optional wrappers around things, however this isn't sufficient yet for CL 3.0 without generic address space, I've got one more additional patch to add all those APIs, but this is an easier to review precursor. Reviewed By: Anastasia Differential Revision: https://reviews.llvm.org/D106111
-
Mehdi Amini authored
This reverts commit 5eb2e9aa. This broke MacOS builds, needs to have a safer check guarding the flag addition.
-
Mehdi Amini authored
Ensure that libSupport does not carry any static global initializer. libSupport can be embedded in use cases where we don't want to load all cl::opt unless we want to parse the command line. ManagedStatic can be used to enable lazy-initialization of globals.
-
Mehdi Amini authored
The motivation for this caching wasn't clear, remove it in an effort to simplify the code and make libSupport free of global dynamic constructor. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D106206
-
Roman Lebedev authored
This is consistent with the two other usages of prof md in this pass.
-
Roman Lebedev authored
Same as D106650, but for `FoldTwoEntryPHINode()` Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D106717
-
Roman Lebedev authored
If the branch isn't `unpredictable`, and it is predicted to *not* branch to the block we are considering speculatively executing, then it seems counter-productive to execute the code that is predicted not to be executed. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D106650
-
Roman Lebedev authored
-
Fangrui Song authored
glibc/elf/tst-absolute-zero-lib.lds uses `"absolute" = 0;`
-
Nico Weber authored
-
Nico Weber authored
These symbols are somewhat interesting in that they create non-existing segments, which as far as I know is the only way to create segments that don't contain any sections. Final part of part of PR50760. Like D106629, but for segments instead of sections. I'm not aware of anything that needs this in practice. Differential Revision: https://reviews.llvm.org/D106767
-
Nico Weber authored
Fixes the output segment name if both -rename_section and -rename_segment are used and the post-section-rename segment name is the same as the pre-segment-rename segment name to match ld64's behavior. The motivation is that segment$start$ can create section-less segments, and this makes a corner case in the interaction between segment$start and -rename_segment in the upcoming segment$start patch. Differential Revision: https://reviews.llvm.org/D106766
-
Nico Weber authored
No behavior change. Differential Revision: https://reviews.llvm.org/D106765
-
Jon Chesterfield authored
If hsa_init fails, subsequent calls into hsa are not safe. Except for hsa_init, but we don't retry on failure. This patch: - deletes a print that called into hsa to ask why it can't call into hsa - drops a merge conflict block next to that print - reliably initializes number of devices to zero - skips the plugin destructor contents if the constructor failed to init hsa Tested by making hsa_init return error, and by forcing the dynamic library use which was then deleted from disk. Before this patch, both segv. After it, friendly message about offloading being unavailable. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D106774
-
Nico Weber authored
This reverts commit a6eb3462. The test fails, I screwed something up.
-
Nico Weber authored
No behavior change. Differential Revision: https://reviews.llvm.org/D106765
-
Stefan Gränitz authored
-
Nico Weber authored
Makes clang crash: https://reviews.llvm.org/D105008#2903350 This reverts commit d2a73fb4. Also revert a minor formatting follow-up: This reverts commit 82834a67.
-
Jon Chesterfield authored
Inaccurate error handling around hsa_init This reverts commit e30b3b23.
-
Fangrui Song authored
so that IMAGE_COMDAT_SELECT_LARGEST refers to the correct example.
-