llvm-project/llvm/lib
Roman Tereshin 2b94972eb9 [GlobalISel][AArch64] Adding -disable-gisel-legality-check CL option
Currently it's impossible to test InstructionSelect pass with MIR which
is considered illegal by the Legalizer in Assert builds. In early stages
of porting an existing backend from SelectionDAG ISel to GlobalISel,
however, we would have very basic CallLowering, Legalizer, and
RegBankSelect implementations, but rather functional Instruction Select
with quite a few patterns selectable due to the semi-automatic porting
process borrowing them from SelectionDAG ISel.

As we are trying to define legality as a property of being selectable by
the instruction selector, it would be nice to be able to easily check
what the selector can do in its current state w/o the legality check
provided by the Legalizer getting in the way.

It also seems beneficial to have a regression testing set up that would
not allow the selector to silently regress in its support of the MIR not
supported yet by the previous passes in the GlobalISel pipeline.

This commit adds -disable-gisel-legality-check command line option to
llc that disables those legality checks in RegBankSelect and
InstructionSelect passes.

It also adds quite a few MIR test cases for AArch64's Instruction
Selector. Every one of them would fail on the legality check at the
moment, but will select just fine if the check is disabled. Every test
MachineFunction is intended to exercise a specific selection rule and
that rule only, encoded in the MachineFunction's name by the rule's
number, ID, and index of its GIM_Try opcode in TableGen'erated
MatchTable (-optimize-match-table=false).

Reviewers: ab, dsanders, qcolombet, rovka

Reviewed By: bogner

Subscribers: kristof.beyls, volkan, aditya_nandakumar, aemerson,
rengolin, t.p.northover, javed.absar, llvm-commits

Differential Revision: https://reviews.llvm.org/D42886

llvm-svn: 326396
2018-03-01 00:27:48 +00:00
..
Analysis Fixed spelling mistake in comments of LLVM Analysis passes 2018-02-28 19:08:52 +00:00
AsmParser Make the LLParser accept call instructions of variables in the program AS 2018-02-27 11:15:11 +00:00
BinaryFormat Add DWARF for discriminated unions 2018-02-06 23:45:59 +00:00
Bitcode [DebugInfo] Support DWARF v5 source code embedding extension 2018-02-23 23:01:06 +00:00
CodeGen [GlobalISel][AArch64] Adding -disable-gisel-legality-check CL option 2018-03-01 00:27:48 +00:00
DebugInfo [CodeView] Lower __restrict and other pointer qualifiers correctly 2018-02-27 22:08:15 +00:00
Demangle Silence a bunch of implicit fallthrough warnings 2017-12-19 22:05:25 +00:00
ExecutionEngine [TLS] use emulated TLS if the target supports only this mode 2018-02-28 17:48:55 +00:00
FuzzMutate [llvm-opt-fuzzer] Add another pack of passes for continuous fuzzing 2018-02-19 11:57:07 +00:00
Fuzzer [libFuzzer] Delete llvm/lib/Fuzzer 2017-10-16 20:48:19 +00:00
IR [MIRParser] Accept overloaded intrinsic names w/o type suffixes 2018-02-28 23:51:49 +00:00
IRReader LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
LTO [LTO] Support filtering by hotness threshold 2018-02-26 18:37:45 +00:00
LineEditor
Linker Revert "[IRMover] Implement name based structure type mapping" 2018-02-21 20:12:18 +00:00
MC [WebAssembly] Reorder symbol table to match MC order 2018-02-28 17:19:48 +00:00
Object [WebAssembly] Fix copy-paste error in debugging string 2018-02-28 14:03:18 +00:00
ObjectYAML [WebAssembly] Remove DataSize from linking metadata section 2018-02-27 23:57:37 +00:00
Option [Option] For typo '-foo', suggest '--foo' 2018-01-09 19:38:04 +00:00
Passes Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
ProfileData [SampleProf] NFC. Expose reusable functionality in SampleProfile. 2018-02-22 06:42:57 +00:00
Support Fix llvm-config --system-libs output on FreeBSD and NetBSD 2018-02-28 20:04:21 +00:00
TableGen TableGen: Remove VarInit::getFieldType 2018-02-25 20:50:17 +00:00
Target [X86] Make sure we don't combine (fneg (fma X, Y, Z)) to a target specific node when there are no FMA instructions. 2018-03-01 00:08:38 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers [COFF] Keep the underscore on exported decorated stdcall functions in MSVC mode 2018-01-20 11:44:32 +00:00
Transforms [DAE] don't remove args of musttail target/caller 2018-03-01 00:09:35 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay] clarify error messages when parsing broken traces 2018-01-30 13:41:34 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00