- Feb 05, 2020
-
-
Vedant Kumar authored
In order to synthesize tail call frames, the stack frame list must not be empty (otherwise, there is no "previous" frame to infer a tail call from). This case is hard to hit. To trigger it, we must first fail to push `unwind_frame_sp` because we either fail to get its SymbolContext, or given its SymbolContext the GetParentOfInlineScope call fails. This causes m_concrete_frames_fetched to be incremented while m_frames remains empty. Then, the next frame in the stack may fail within SynthesizeTailCallFrames. This crash arose during a kernel debugging session. rdar://59147051
-
Jacques Pienaar authored
-
Fangrui Song authored
Make usage more consistent, and make it possible to enable LongOptionsUseDoubleDash.
-
Matt Arsenault authored
The usage of the Imm out argument from SelectSMRDOffset is pretty confusing. Stop trying to reject CI immediates in the case where the offset field can be used. It's not an illegal way to encode the immediate, so just prefer the better encoding pattern with AddedComplexity. We probably don't even really need the different opcodes for the different offset types anymore, but that will be more work to cleanup. The SMRD non-buffer load patterns could also use a cleanup to be done separately.
-
Matt Arsenault authored
-
Simon Pilgrim authored
We weren't account for load latencies in the SSE42/AES/CLMUL schedule classes
-
Matt Arsenault authored
-
Yitzhak Mandelbaum authored
Summary: Spells out some `auto`s explicitly and adds another test for the matcher `isExpandedFromMacro`. Reviewers: aaron.ballman Subscribers: gribozavr, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73975
-
Hiroshi Yamauchi authored
Summary: Add a debug check for frequency queries for unknown blocks (typically blocks that are created after BFI is computed but their frequencies are not communicated to BFI.) This is useful for detecting and debugging missed BFI updates. This is debug build only and disabled behind a flag. Reviewers: davidxl Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73920
-
Sanjay Patel authored
Existing tests: rG5d04e008 rG2a191cf8 ...should verify that the underlying analysis doesn't improve too much without updating this user code.
-
Matt Arsenault authored
AMDGPU and x86 at least both have separate controls for whether denormal results are flushed on output, and for whether denormals are implicitly treated as 0 as an input. The current DAGCombiner use only really cares about the input treatment of denormals.
-
Stephen Neuendorffer authored
-
Fangrui Song authored
Similar to D73680 (AArch64 BTI). A local linkage function whose address is not taken does not need ENDBR32/ENDBR64. Placing the patch label after ENDBR32/ENDBR64 has the advantage that code does not need to differentiate whether the function has an initial ENDBR. Also, add 32-bit tests and test that .cfi_startproc is at the function entry. The line information has a general implementation and is tested by AArch64/patchable-function-entry-empty.mir Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D73760
-
Fangrui Song authored
Reviewed By: hans Differential Revision: https://reviews.llvm.org/D73937
-
David Spickett authored
Differential Revision: https://reviews.llvm.org/D73972
-
Peter Collingbourne authored
By subtracting 1 from Size at the beginning we can simplify the subsequent calculations. This also saves 4 instructions on aarch64 and 9 instructions on x86_64, but seems to be perf neutral. Differential Revision: https://reviews.llvm.org/D73936
-
Yonghong Song authored
Linux commit https://github.com/torvalds/linux/commit/1cf5b23988ea0086a252a5c8b005b075f1e9b030#diff-289313b9fec99c6f0acfea19d9cfd949 uses "#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)" to apply CO-RE relocations to all records including the following pattern: #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) typedef struct { int a; } __t; #pragma clang attribute pop int test(__t *arg) { return arg->a; } The current approach to use struct type in the relocation record will result in an anonymous struct, which make later type matching difficult in bpf loader. In fact, current BPF backend will fail the above program with assertion: clang: ../lib/Target/BPF/BPFAbstractMemberAccess.cpp:796: ... Assertion `TypeName.size()' failed. The patch use the base lvalue type for the "base" value to annotate preservee_{struct,union}_access_index intrinsics. In the above example, the type will be "__t" which preserved the type name. Differential Revision: https://reviews.llvm.org/D73900
-
Cameron McInally authored
Fix incorrect spacing for `denormal-fp-math` and `denormal-fp-math-f32`. No other changes.
-
Stephen Neuendorffer authored
Summary: This patch is a step towards enabling BUILD_SHARED_LIBS=on, which builds most libraries as DLLs instead of statically linked libraries. The main effect of this is that incremental build times are greatly reduced, since usually only one library need be relinked in response to isolated code changes. The bulk of this patch is fixing incorrect usage of cmake, where library dependencies are listed under add_dependencies rather than under target_link_libraries or under the LINK_LIBS tag. Correct usage should be like this: add_dependencies(MLIRfoo MLIRfooIncGen) target_link_libraries(MLIRfoo MLIRlib1 MLIRlib2) A separate issue is that in cmake, dependencies between static libraries are automatically included in dependencies. In the above example, if MLIBlib1 depends on MLIRlib2, then it is sufficient to have only MLIRlib1 in the target_link_libraries. When compiling with shared libraries, it is necessary to have both MLIRlib1 and MLIRlib2 specified if MLIRfoo uses symbols from both. Reviewers: mravishankar, antiagainst, nicolasvasilache, vchuravy, inouehrs, mehdi_amini, jdoerfert Reviewed By: nicolasvasilache, mehdi_amini Subscribers: Joonsoo, merge_guards_bot, jholewinski, mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, csigg, arpith-jacob, mgester, lucyrfox, herhut, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73653
-
Yonghong Song authored
Linux commit https://github.com/torvalds/linux/commit/1cf5b23988ea0086a252a5c8b005b075f1e9b030#diff-289313b9fec99c6f0acfea19d9cfd949 uses "#pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record)" to apply CO-RE relocations to all records including the following pattern: #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) typedef struct { int a; } __t; #pragma clang attribute pop int test(__t *arg) { return arg->a; } The current approach to use struct/union type in the relocation record will result in an anonymous struct, which make later type matching difficult in bpf loader. In fact, current BPF backend will fail the above program with assertion: clang: ../lib/Target/BPF/BPFAbstractMemberAccess.cpp:796: ... Assertion `TypeName.size()' failed. clang will change to use the type of the base of the member access which will preserve the typedef modifier for the preserve_{struct,union}_access_index intrinsics in the above example. Here we adjust BPF backend to accept that the debuginfo type metadata may be 'typedef' and handle them properly. Differential Revision: https://reviews.llvm.org/D73902
-
Yitzhak Mandelbaum authored
Summary: This revision adds a matcher `isExpandedFromMacro` that determines whether a statement is (transitively) expanded from a given macro. Reviewers: gribozavr Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73965
-
Justin Hibbits authored
rG2c4620ad inadvertently added redundancies in selection of GT and LE predicates for SPE. Correct this. Partially addresses PR 44768.
-
David Spickett authored
Differential Revision: https://reviews.llvm.org/D73469
-
Sam McCall authored
Summary: This is a fairly ugly hack - we back off several features for any variable whose type isn't deduced, to avoid computing/caching linkage. Better suggestions welcome. Fixes https://github.com/clangd/clangd/issues/274 Reviewers: kadircet, kbobyrev Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73960
-
Sam McCall authored
This reverts commit ed98994f. Removed the accidental double-mutex-unlock.
-
Kazushi (Jam) Marukawa authored
Summary: fp16 (half) load+fpext and fptrunc+store isel legalization and tests. Also, ExternalSymbolSDNode operand printing (tested by fp16 lowering). Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D73899
-
- Feb 04, 2020
-
-
Jonas Paulsson authored
Needed to fix buildbots.
-
Jonas Paulsson authored
This is needed when building the Linux kernel. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D72189
-
Nico Weber authored
This reverts commit 5327b917. Already fails on non-Linux at this commit.
-
Nico Weber authored
and follow-ups. This reverts commit 1ced28cb. This reverts commit 4f281f04. This reverts commit 552a8fe1. The test fails on non-Linux.
-
Jeremy Morse authored
This patch reverts part of r362750 / D62650, which stopped LiveDebugVariables from trimming leading variable location ranges down to only covering those instructions that are in scope. I've observed some circumstances where the number of DBG_VALUEs in a function can be amplified in an un-necessary way, to cover more instructions that are out of scope, leading to very slow compile times. Trimming the range of instructions that the variables cover solves the slow compile times. The specific problem that r362750 tries to fix is addressed by the assignment to RStart that I've added. Any variable location that begins at the first instruction of a block will now be considered to begin at the start of the block. While these sound the same, the have different SlotIndexes, and the register allocator may shoehorn additional instructions in between the two. The test added in the past (wrong_debug_loc_after_regalloc.ll) still works with this modification. live-debug-variables.ll has a range trimmed to not cover the prologue of the function, while dbg-addr-dse.ll has a DBG_VALUE sink past one instruction with no DebugLoc, which is expected behaviour. Differential Revision: https://reviews.llvm.org/D73691
-
Mikhail Maltsev authored
Summary: After following Simon's suggestion about additional testing posted at https://reviews.llvm.org/D73906, I found several more places that need to be updated. Reviewers: simon_tatham, dmgreen, ostannard, eli.friedman Reviewed By: simon_tatham Subscribers: merge_guards_bot, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73963
-
Sam McCall authored
This reverts commit 92570718. Breaking tests: http://45.33.8.238/linux/9296/step_9.txt
-
Krzysztof Parzyszek authored
-
Sam McCall authored
Summary: By default it's 512K, which is way to small for clang parser to run on. There is no way to do it via platform-independent API, so it's implemented via pthreads directly in clangd/Threading.cpp. Fixes https://github.com/clangd/clangd/issues/273 Patch by Dmitry Kozhevnikov! Reviewers: ilya-biryukov, sammccall, arphaman Reviewed By: ilya-biryukov, sammccall, arphaman Subscribers: dexonsmith, umanwizard, jfb, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D50993
-
Sanjay Patel authored
-
Jan Kratochvil authored
[lldb] [testsuite] Fixup: generalize `DWARFASTParserClangTests` based on `DWARFExpressionTest`'s YAML The testcase did not compile now because of an upstream change in the meantime. For: https://reviews.llvm.org/D73279
-
Lei Zhang authored
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D73955
-
Lei Zhang authored
This commit adds two resource limits, max_compute_workgroup_size and max_compute_workgroup_invocations as resource limits to the target environment. They are not used at the current moment, but they will affect the SPIR-V CodeGen. Adding for now to have a proper target environment modelling. Differential Revision: https://reviews.llvm.org/D73905
-