- May 09, 2023
-
-
Jean Perier authored
This patch lowers assignments to vector subscripted designators into the newly added hlfir.elemental_addr and hlfir.region_assign. Note that the codegen of these operation to FIR is still TODO and will still emit a TODO message when trying to compile programs end to end. Differential Revision: https://reviews.llvm.org/D149962
-
Jean Perier authored
Lower WHERE to the newly added hlfir.where and hlfir.elsewhere operations. Differential Revision: https://reviews.llvm.org/D149950
-
Jean Perier authored
Lower Forall to the previously added hlfir.forall, hlfir.forall_mask. hlfir.forall_index, and hlfir.region_assign operations. The HLFIR assignment code lowering is moved into genDataAssignment for more readability and so that user defined assignment (still a TODO), will be able to share most of the logic. Differential Revision: https://reviews.llvm.org/D149878
-
Hans Wennborg authored
r327256 / 2b8b90a7 added this include-order work-around since regex_impl.h's include guard conflicted with macOS's xlocale.h which used the same macro. Since b86c2496 renamed the include guard, that work-around is no longer needed. Differential revision: https://reviews.llvm.org/D150127
-
Hans Wennborg authored
This broke two lit tests: LLVM :: Transforms/LoopSimplify/merge-exits.ll LLVM :: Transforms/PhaseOrdering/X86/vector-reductions.ll see comment on the code review. > Differential Revision: https://reviews.llvm.org/D149934 This reverts commit 2ba4cfd5.
-
pvanhout authored
Instead of ad-hoc updating liveness, recompute it completely for the affected register. This does not affect any existing test and fixes an edge case that caused a "Non-empty but used interval" error in the register allocator due to how the pass updated liveranges. It created a "isolated" live-through segment. Overall this change just seems to be a net positive with no side effect observed. There may be a compile time impact but it's expected to be minimal. Fixes SWDEV-388279 Reviewed By: critson Differential Revision: https://reviews.llvm.org/D150105
-
Weining Lu authored
Differential Revision: https://reviews.llvm.org/D150089
-
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 10.12 systems where we did not use dyld SPI. We can't back compile to those OS builds any longer with modern Xcode. Finally, it removes a requirement in DynamicLoaderMacOS that the JSON reply from jGetLoadedDynamicLibrariesInfos include the mod_date field for each binary. This has always been reported as 0 in modern dyld, and is another reason for packet growth in the reply. debugserver still puts the mod_date field in its replies for interop with existing lldb's, but we will be able to remove it the field from debugserver's output after the next release cycle when this patch has had time to circulate. I'll add lldb support for requesting the load addresses only and splitting the request up into chunks in a separate patch. Differential Revision: https://reviews.llvm.org/D150158 rdar://107848326
-
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
-