- Aug 24, 2022
-
-
esmeyi authored
Summary: Currently, an error was reported when a thread local symbol has an invalid name. D100956 create a new symbol to prefix the TLS symbol name with a dot. When the symbol name is renamed, the error occurs. This patch uses the original symbol name (name in the symbol table) as the input for the symbol for TOC entry. Reviewed By: shchenz, lkail Differential Revision: https://reviews.llvm.org/D132348
-
ZHU Zijia authored
In branch relaxation pass, `j`'s with offset over 1MiB will be relaxed to `jump` pseudo-instructions. This patch allocates a stack slot for functions with a size greater than 1MiB. If the register scavenger cannot find a scratch register for `jump`, spill a register to the slot before the jump and restore it after the jump. .mbb: foo j .dest_bb bar bar bar .dest_bb: baz The above code will be relaxed to the following code. .mbb: foo sd s11, 0(sp) jump .restore_bb, s11 bar bar bar j .dest_bb .restore_bb: ld s11, 0(sp) .dest_bb: baz Depends on D129999. Reviewed By: StephenFan Differential Revision: https://reviews.llvm.org/D130560 -
ZHU Zijia authored
If a MachineInstr's operand should be Reg in compiler's output but is currently FrameIndex, `isCompressibleInst()` will terminate at `MachineOperandType::getReg()`. This patch adds `.isReg()` checks to make `isCompressibleInst()` return false for these MachineInstr, allowing `getInstSizeInBytes()` to return a value and `EstimateFunctionSizeInBytes()` to work as intended. See https://reviews.llvm.org/D129999#3694222 for details. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D129999
-
Kai Sasaki authored
Lower math.floor and math.ceil to libm Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D131876
-
Che-Yu Wu authored
Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D132507
-
Keno Fischer authored
The array size specification of the an alloca can be any integer, so zext or trunc it to intptr before attempting to multiply it with an intptr constant. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D131846
-
Keno Fischer authored
We were passing the type of `Val` to `getShadowOriginPtr`, rather than the type of `Val`'s shadow resulting in broken IR. The fix is simple. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D131845
-
John Ericson authored
If `LLVM_BUILD_MAIN_SRC_DIR` is not defined, just assume we are in regular monorepo layout. Non-standard (and not really supported) layouts can still be configured manually. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D132314
-
Bing1 Yu authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D132141
-
Simon Pilgrim authored
extractShiftForRotate may fail to return canonicalized shifts due to constant folding or other simplification that can occur in getNode() Fixes Issue #57283
-
Chris Bieneman authored
This allows the language mode for HLSL to be inferred from the file extension.
-
Chris Bieneman authored
This change came in a few hours ago and introduced a warning. The fix is trivial, so I'm providing it. The original change was reviewed here: https://reviews.llvm.org/D132331
-
Bing1 Yu authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D132141
-
River Riddle authored
MSVC is not picking up a variable capture somehow, try moving it inside.
-
Amir Ayupov authored
Move the large lambda out of BinaryFunction::disassemble, reducing its size from 255 to 233 LoC. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D132104
-
Amir Ayupov authored
Move the large lambda out of BinaryFunction::disassemble, reducing its size from 295 to 255 LoC. Differential Revision: https://reviews.llvm.org/D132101
-
Amir Ayupov authored
Move the large lambda out of BinaryFunction::disassemble, reducing its size from 338 to 295 LoC. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D132100
-
Amir Ayupov authored
Move the large lambda out of BinaryFunction::disassemble, reducing its size from 377 to 338 LoC. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D132099
-
Petr Hosek authored
We're seeing the following warnings with --rtlib=compiler-rt: lld-link: warning: ignoring unknown argument '--as-needed' lld-link: warning: ignoring unknown argument '-lunwind' lld-link: warning: ignoring unknown argument '--no-as-needed' MSVC doesn't use the unwind library, so just omit it. Differential Revision: https://reviews.llvm.org/D132440
-
River Riddle authored
Some tests still pass even though we don't claim big-endian support. Using UNSUPPORTED is a better indicator than XFAIL that we don't guarantee that the tests work.
-
River Riddle authored
Dialects can opt-in to providing custom encodings by implementing the `BytecodeDialectInterface`. This interface provides hooks, namely `readAttribute`/`readType` and `writeAttribute`/`writeType`, that will be used by the bytecode reader and writer. These hooks are provided a reader and writer implementation that can be used to encode various constructs in the underlying bytecode format. A unique feature of this interface is that dialects may choose to only encode a subset of their attributes and types in a custom bytecode format, which can simplify adding new or experimental components that aren't fully baked. Differential Revision: https://reviews.llvm.org/D132498
-
River Riddle authored
This moves some parsing functionality from BytecodeReader to AttrTypeReader, and removes some duplication between the attribute/type code paths. Differential Revision: https://reviews.llvm.org/D132497
-
River Riddle authored
This extracts the string section writer and reader into dedicated classes, which better separates the logic and will also simplify future patches that want to interact with the string section. Differential Revision: https://reviews.llvm.org/D132496
-
Teresa Johnson authored
The existing code resulted in the max size and access counts being equal to the min. Compute the max instead (max lifetime was already correct). Differential Revision: https://reviews.llvm.org/D132515
-
isuckatcs authored
The constructors of non-POD array elements are evaluated under certain conditions. This patch makes sure that in such cases we also evaluate the destructors. Differential Revision: https://reviews.llvm.org/D130737
-
Slava Zakharin authored
Keep the original data type of integer do-variables for structured loops. When do-variable's data type is an integer type shorter than IndexType, processing the do-variable separately from the DoLoop's iteration index allows getting rid of type casts, which can make backend optimizations easier. For example, ``` do i = 2, n-1 do j = 2, n-1 ... = a(j-1, i) end do end do ``` If value of 'j' is computed by casting the DoLoop's iteration index to 'i32', then Flang will produce the following LLVM IR: ``` %1 = trunc i64 %iter_index to i32 %2 = sub i32 %1, 1 %3 = sext i32 %2 to i64 ``` LLVM's InstCombine may try to get rid of the sign extension, and may transform this into: ``` %1 = shl i64 %iter_index, 32 %2 = add i64 %1, -4294967296 %3 = ashr exact i64 %2, 32 ``` The extra computations for the element address applied on top of this awkward pattern confuse LLVM vectorizer so that it does not recognize the unit-strided access of 'a'. Measured performance improvements on `SPEC CPU2000@IceLake`: ``` 168.wupwise: 11.96% 171.swim: 11.22% 172.mrgid: 56.38% 178.galgel: 7.29% 301.apsi: 8.32% ``` Differential Revision: https://reviews.llvm.org/D132176 -
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D132180
-
Louis Dionne authored
Differential Revision: https://reviews.llvm.org/D132175
-
Siva Chandra authored
This now allows enabling the chmod function on aarch64.
-
Eli Friedman authored
Trying to figure out intermittent failure on reverse-iteration buildbot.
-
Sanjay Patel authored
(ctpop x) == 1 --> (x != 0) && ((x & x-1) == 0) Adjust the legality check to avoid the poor codegen on AArch64. We probably only want to use popcount on this pattern when it is a single instruction. fixes #57225 Differential Revision: https://reviews.llvm.org/D132237
-
Sanjay Patel authored
More coverage for D132237
-
Sanjay Patel authored
The existing tests were added with 2880d7b9, but discussion in D132412 suggests that we should start with a simpler pattern (the more complicated pattern may not be a real problem).
-
Vitaly Buka authored
342e0ebd reverted LLVM_ENABLE_RUNTIMES incompletly and missed /runtimes part. This target has no issues with LLVM_ENABLE_RUNTIMES, so we can keep it.
-
Vitaly Buka authored
-
Vitaly Buka authored
It runs 8 threads. Sometimes tsan is able to detect more than one of the same race.
-
Louis Dionne authored
We build libcxx using LLVM_ENABLE_RUNTIMES during Stage2, which requires cxx-headers to be part of LLVM_RUNTIME_DISTRIBUTION_COMPONENTS instead of LLVM_DISTRIBUTION_COMPONENTS. rdar://99028431 Differential Revision: https://reviews.llvm.org/D132488
-
Vitaly Buka authored
"this" parameter of lambda if undef, notnull and differentiable. So we need to pass something consistent. Any alloca will work. It will be eliminated as unused later by optimizer. Otherwise we generate code which Msan is expected to catch. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D132275
-
Peter Steinfeld authored
This title says it all. Differential Revision: https://reviews.llvm.org/D132179
-