[Exegesis][RISCV] Skip some of the tests under expensive checks Under expensive checks, some of the tests will fail to pass the MachineVerifier. It's because right after a snippet is generated, its VL operand (if it's a register) is assigned a physical register. While we'll replace it with virtual register in RISCVExegesisPreprocessing, it's technically violating RISCVInstrInfo's validation rule. Under normal circumstances, this won't trigger a MachineVerifier failure because the codegen pipeline doesn't validate the code until the very end -- which is not the case under EXPENSIVE_CHECKS where MachineVerifierPass is sprinkled here and there. This is really caused by the fact that RISCV exegesis has an odd "codegen" Pass pipeline. And I don't have a good solution yet, so I'm surpressing these tests under EXPENSIVE_CHECKS.
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.