|
 | llvm/lib/Target/AArch64/AArch64ExpandImm.cpp (diff) |
Commit
50ca8b3e8726180a74fcbc4611893f19189b97c0
by jonas.hahnfeld[ORC] Drop Comdat when discarding IR symbol
According to the IR verifier, "Declaration[s] may not be in a Comdat!"
This is a re-commit of 76b3f0b4d5a0b8c54147c4c73a30892bbca76467 and 87d7838202267a011639fcbf97263556ccf091dc with updates to the test: * Force emission of the extra-module, to trigger the bug after D138264, by providing a second symbol @g, and making the comdat nodeduplicate. (Technically only one is needed, but two should be safer.) * Name the comdat $f to avoid failure on Windows: LLVM ERROR: Associative COMDAT symbol 'c' does not exist. * Mark the test as UNSUPPORTED on macOS, MachO doesn't support COMDATs.
Differential Revision: https://reviews.llvm.org/D142443
|
 | llvm/lib/ExecutionEngine/Orc/Layer.cpp (diff) |
 | llvm/test/ExecutionEngine/Orc/Inputs/weak-comdat-def.ll |
 | llvm/test/ExecutionEngine/Orc/weak-comdat.ll |
Commit
120ce83660dea7e70abe1c8f9408f39fe2502f8d
by david.green[DAG] Add visitABD optimizations
This adds basic a visitABD to optimize ABDS and ABDU nodes, similar to the existing visitAVG method.
The fold I was initially interested in was folding shuffles though the binop. This also: - Marks ABDS and ABDU as commutative binops (https://alive2.llvm.org/ce/z/oCDogb and https://alive2.llvm.org/ce/z/7zrs86). - Add reassociative folds. - Add constant folding using max(x,y)-min(x,y) - Canonicalizes constants to the RHS - Folds abds x, 0 -> abs(x) (https://alive2.llvm.org/ce/z/4ZEibv) - Folds abdu x, 0 -> x (https://alive2.llvm.org/ce/z/J_rKqx) - Folds abd x, undef -> 0 (https://alive2.llvm.org/ce/z/NV6Nsv and https://alive2.llvm.org/ce/z/vs92hu).
Differential Revision: https://reviews.llvm.org/D143193
|
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff) |
 | llvm/include/llvm/CodeGen/TargetLowering.h (diff) |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff) |
 | llvm/test/CodeGen/Thumb2/mve-vabdus.ll (diff) |
 | llvm/test/CodeGen/AArch64/abd-combine.ll (diff) |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
 | llvm/test/CodeGen/AArch64/arm64-neon-aba-abd.ll (diff) |
Commit
8c5a292202ff26ad51cf348001f82444d96e803b
by arsenm2IROutliner: Fix another assert with non-0 alloca addrspaces
Code is inserting an addrspacecast it shouldn't be, but that's a separate CodeExtractor bug.
This also stops caring about typed pointers.
|
 | llvm/lib/Transforms/IPO/IROutliner.cpp (diff) |
 | llvm/test/Transforms/IROutliner/alloca-addrspace-1.ll |
Commit
d4f38ef288c3a4cf2318182c8585a5c7e760877a
by arsenm2LangRef: Clarify behavior of llvm.is.fpclass with "denormal-fp-math"
This does not read canonicalized values, which matches the behavior of the basic DAG expansion using integer operations. There is a buggy expansion using FP-operations if legal which needs to be adjusted to account for this. We need to be aware of the denormal mode to switch between is.fpclass calls and fcmp.
There's no real spec for denormal handling anywhere, but I believe this is the most harmonious way to deal with the question considering the requirement to not quiet input signaling nans.
This matches the behavior of MSVC's _fpclass and AMDGPU's v_cmp_class_f32. fpclassify currently does not use this, and has inconsistent behavior for denormals under DAZ on different platforms (i.e. clang and gcc report FP_ZERO return FP_ZERO for a denormal under DAZ, MSVC reports FP_SUBNORMAL).
|
 | llvm/docs/LangRef.rst (diff) |