- May 09, 2023
-
-
varconst authored
- add the `from_range_t` constructors and the related deduction guides; - add the `insert_range`/`assign_range`/etc. member functions. (Note: this patch is split from https://reviews.llvm.org/D142335) Differential Revision: https://reviews.llvm.org/D149826
-
Shengchen Kan authored
-
Amara Emerson authored
There's a target hook that's called in DAGCombiner that we stub here, I'll implement the equivalent override for AArch64 in a subsequent patch since it's used by different shift combine. This change by itself has minor code size improvements on arm64 -Os CTMark: Program size.__text outputg181ppyy output8av1cxfn diff consumer-typeset/consumer-typeset 410648.00 410648.00 0.0% tramp3d-v4/tramp3d-v4 364176.00 364176.00 0.0% kimwitu++/kc 449216.00 449212.00 -0.0% 7zip/7zip-benchmark 576128.00 576120.00 -0.0% sqlite3/sqlite3 285108.00 285100.00 -0.0% SPASS/SPASS 411720.00 411688.00 -0.0% ClamAV/clamscan 379868.00 379764.00 -0.0% Bullet/bullet 452064.00 451928.00 -0.0% mafft/pairlocalalign 246184.00 246108.00 -0.0% lencod/lencod 428524.00 428152.00 -0.1% Geomean difference -0.0% Differential Revision: https://reviews.llvm.org/D150086 -
Jon Roelofs authored
-
luxufan authored
Differential Revision: https://reviews.llvm.org/D149934
-
William Huang authored
Cleanup profile reader classes to prepare for complex refactoring as propsed in D147740, continuing D148868 This is patch 2/n. This patch refactors CSNameTable and related things The decision to move CSNameTable up to the base class is because a planned improvement (D147740) to use MD5 to lookup Functions/Context frames. In this case we want a unified data structure between contextless function or Context frames, so that it can be mapped by MD5 value. Since Context Frames can represent contextless functions, it is being used for MD5 lookup, therefore exposing it to the base class Reviewed By: snehasish, wenlei Differential Revision: https://reviews.llvm.org/D148872
-
Jason Molenda authored
jGetLoadedDynamicLibrariesInfos has a mode where it will list every binary in the process - the load address and filepath from dyld SPI, and the mach-o header and load commands from a scan by debugserver for perf reasons. With a large enough number of libraries, creating that StructuredData representation of all of this, and formatting it into an ascii string to send up to lldb, can grow debugserver's heap size too large for some environments. This patch adds a new report_load_commands:false boolean to the jGetLoadedDynamicLibrariesInfos packet, where debugserver will now only report the dyld SPI load address and filepath for all of the binaries. lldb can then ask for the detailed information on the process binaries in smaller chunks, and avoid debugserver having ever growing heap use as the number of binaries inevitably increases. This patch also removes a version of jGetLoadedDynamicLibrariesInfos for pre-iOS 10 and pre-macOS 1...
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
This is part of an effort to migrate from llvm::Optional to std::optional: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716
-
Amir Aupov authored
Fix test on BOLT's buildbot, e.g. https://lab.llvm.org/buildbot/#/builders/244/builds/10885
-
Owen Pan authored
Since 3.8 or earlier, clang-format has been lumping all #else, #elif, etc blocks together when doing whitespace replacements and causing consecutive alignments across #else blocks. Commit c0779756 partially addressed the problem but also triggered "regressions". This patch fixes the root cause of the problem and "reverts" c0779756 (except for the unit tests). Fixes #36070. Fixes #55265. Fixes #60721. Fixes #61498. Differential Revision: https://reviews.llvm.org/D150057
-
Joseph Huber authored
The interop types use the number of dependencies in the function interface. Every other function uses an `i32` to count the number of dependencies except for the initialization function. This leads to codegen issues when the rest of the compiler passes in an `i32` that then creates an invalid call. Fix this to be consistent with the other uses. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D150156
-
Amir Ayupov authored
Use MCInst opcode name instead of opcode value in hashing. Opcode values are unstable wrt changes to target tablegen definitions, and we notice that as output mismatches in NFC testing. This makes BOLT YAML profile tied to a particular LLVM revision which is less portable than offset-based fdata profile. Switch to using opcode names which have 1:1 mapping with opcode values for any given LLVM revision, and are stable wrt modifications to .td files (except of course modifications to names themselves). Test Plan: D150154 is a test commit adding new X86 instruction which shifts opcode values. With current change, pre-aggregated-perf.test passes in nfc check mode. Without current change, pre-aggregated-perf.test expectedly fails. Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D150005
-
Amir Ayupov authored
Make retpoline functions invariant of X86 register numbers. retpoline-synthetic.test is known to fail NFC testing due to shifting register numbers. Use canonical register names instead of tablegen numbers. Before: ``` __retpoline_r51_ __retpoline_mem_r58+DATAat0x200fe8 __retpoline_mem_r51+0 __retpoline_mem_r132+0+8*53 ``` After: ``` __retpoline_%rax_ __retpoline_mem_%rip+DATAat0x200fe8 __retpoline_mem_%rax+0 __retpoline_mem_%r12+0+8*%rbx ``` Test Plan: - Revert 67bd3c58 that touches X86RegisterInfo.td. - retpoline-synthetic.test passes in NFC mode with this diff, fails without it. Reviewed By: #bolt, rafauler Differential Revision: https://reviews.llvm.org/D150138
-
David Blaikie authored
-
David Blaikie authored
The packed attribute can still be useful in this case if the struct is then placed inside another packed struct - the non-pod element type's packed attribute declares that it's OK to misalign this element inside the packed structure. (otherwise the non-pod element is not packed/its alignment is preserved, as per D117616/27712337) Fixes PR62353 Differential Revision: https://reviews.llvm.org/D149182
-
Pierre Calixte authored
Prevent optimization of DebugLoc across section boundaries, such optimization will yield incorrect source location if memory layout of sections does not strictly match the Asm file. Reviewed By: #debug-info, dblaikie, MaskRay Differential Revision: https://reviews.llvm.org/D149294
-
Slava Zakharin authored
This fixes LEN inquiry on array constructors where the length expression includes references to the ac-do-variable. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D150149
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Alan Zhao authored
This reverts commit 1ddfd1c8. The original commit causes a Chrome build assertion failure with ThinLTO: https://crbug.com/1443635
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Peter Klausler authored
Make __builtin_c_loc() into an intrinsic function and verify the special semantic requirements on its actual arguments. Differential Revision: https://reviews.llvm.org/D149988
-
Michael Francis authored
`-K` is a linker option on AIX, that is used to align the header, text, data, and loader sections of the output file so that each section begins on a page boundary. This patch creates the `-K` option in clang. On non-AIX targets, the "unsupported option" error is thrown. Differential Revision: https://reviews.llvm.org/D146399
-
Peter Klausler authored
Code in Evaluate/type.cpp was maintaining a very old assumption that procedure pointers would need to be represented as descriptors. This is not the case -- they are code or thunk addresses. Differential Revision: https://reviews.llvm.org/D149984
-
Alexander Yermolovich authored
Fix assembly for the helper file to work with the new DWARF rewriter. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D150147
-
Jon Roelofs authored
Differential revision: https://reviews.llvm.org/D150144
-
Peter Klausler authored
Pointer components without default initialization pose some difficult (or impossible) problems when they appear as right-hand side targets in pointer assignment statements; they may contain garbage or stale data that looks enough like a valid descriptor to cause a crash. Solve the problem by avoiding it -- ensure that pointers' descriptors are at least minimally established. Differential Revision: https://reviews.llvm.org/D149979
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Joseph Huber authored
When cross-compiling NVPTX we use the triple to indicate which paths to search for the CUDA toolchain. Currently this uses the default target triple. This might not be exactly correct, as this is the default triple used to compile binaries, not the host system. We want the host triple because it indicates which folders should hold CUDA. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D150136
-
Elizabeth Andrews authored
-
Craig Topper authored
This uses the same sequence we get from LegalizeDAG for i32 on RV32, but modified to use W instructions. When the RHS is constant one of the setccs simplifies to a constant and the xor will either be an xori with 1 or get removed. When the RHS is not a constant it was not an obvious improvement and it was a regression when used with a branch. So I've restricted to the constant case. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D150135
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Aaron Ballman authored
No longer lie about them only being 30 minutes long and add Fridays.
-