[PS4/PS5][Driver][DWARF] Always emit .debug_aranges for SCE tuning (#100160) Some of SIE's post-mortem analysis infrastructure currently makes use of .debug_aranges, so we'd like to ensure the section's presence in PlayStation binaries. The simplest way to do this is to force emission when the debugger tuning is set to SCE (which is in turn typically initialized from the target triple). This also simplifies the driver. llvm/test/DebugInfo/debuglineinfo-path.ll has been marked as UNSUPPORTED on PlayStation. When aranges are emitted, the DWARF in the test case is such that relocations need to be applied to the aranges section in order for symbolization to work. An alternative approach would be to implement the application of relocations in DWARFDebugArangeSet. While experiments show that this can be made to work with a modest patch, the test cases would be rather contrived. Since I expect the only utility for such a change would be to make this test case pass for PlayStation targets, and few - if any - outside of PlayStation care about aranges, UNSUPPORTED would seem to be a more practical option. This was originally commited as 22eb290a96 (#99629) and later reverted at 84658fb82b (#99711) due to test failures on SIE built bots. These failures shouldn't recur due to 3b24e5d450 (#99897) and the aforementioned change to debuglineinfo-path.ll. SIE tracker: TOOLCHAIN-16951
Welcome to the LLVM project!
This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.
The LLVM project has multiple components. The core of the project is itself called “LLVM”. This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.
C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.
Other components include: the libc++ C++ standard library, the LLD linker, and more.
Consult the Getting Started with LLVM page for information on building and running LLVM.
For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.
Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups.
The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.