llvm-project/llvm/lib/CodeGen/GlobalISel
Matt Arsenault a601b308d9 GlobalISel: Lower non-byte loads and stores
Previously we didn't preserve the memory type and had to blindly
interpret a number of bytes. Now that non-byte memory accesses are
representable, we can handle these correctly.

Ported from DAG version (minus some weird special case i1 legality
checking which I don't fully understand, and we don't have a way to
query for)

For now, this is NFC and the test changes are placeholders. Since the
legality queries are still relying on byte-flattened memory sizes, the
legalizer can't actually see these non-byte accesses. This keeps this
change self contained without merging it with the larger patch to
switch to LLT memory queries.
2021-06-30 17:05:50 -04:00
..
CMakeLists.txt [globalisel][legalizer] Separate the deprecated LegalizerInfo from the current one 2021-06-01 13:23:48 -07:00
CSEInfo.cpp [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
CSEMIRBuilder.cpp GlobalISel: Avoid unnecessary truncation to i64 2021-03-21 10:07:41 -04:00
CallLowering.cpp Reland [GlobalISel] NFC: Have LLT::getSizeInBits/Bytes return a TypeSize. 2021-06-28 15:24:27 +01:00
Combiner.cpp [GlobalISel] fix a compilation error with gcc 6.3.0 2020-08-28 09:16:52 -07:00
CombinerHelper.cpp [GISel] Support llvm.memcpy.inline 2021-06-30 12:39:05 -07:00
GISelChangeObserver.cpp GlobalISel: Use Register 2020-08-19 13:45:31 -04:00
GISelKnownBits.cpp [ADT] Remove APInt/APSInt toString() std::string variants 2021-06-11 13:19:15 +01:00
GlobalISel.cpp
IRTranslator.cpp [GISel] Support llvm.memcpy.inline 2021-06-30 12:39:05 -07:00
InlineAsmLowering.cpp [GlobalISel][InlineAsm] Fix matching input constraint to physreg 2020-08-06 14:35:51 +02:00
InstructionSelect.cpp [AArch64][GlobalISel] Enable use of the optsize predicate in the selector. 2021-03-02 12:55:51 -08:00
InstructionSelector.cpp [GlobalISel] Add missing operand update when copy is required 2021-01-20 10:32:52 +01:00
LegacyLegalizerInfo.cpp [GlobalISel] NFC: Change LLT::vector to take ElementCount. 2021-06-24 11:26:12 +01:00
LegalityPredicates.cpp [CodeGen, Transforms] Use llvm::any_of (NFC) 2020-12-24 09:08:36 -08:00
LegalizeMutations.cpp [GlobalISel] NFC: Change LLT::vector to take ElementCount. 2021-06-24 11:26:12 +01:00
Legalizer.cpp [GlobalISel] Don't emit lost debug location remarks when legalizing tail calls 2021-05-26 17:16:11 -07:00
LegalizerHelper.cpp GlobalISel: Lower non-byte loads and stores 2021-06-30 17:05:50 -04:00
LegalizerInfo.cpp Revert "GlobalISel: Use MMO helper for getting the size in bits" 2021-06-29 17:38:51 -04:00
Localizer.cpp [CodeGen] Use range-based for loops (NFC) 2021-02-20 21:46:02 -08:00
LostDebugLocObserver.cpp Give helpers internal linkage. NFC. 2020-04-25 11:50:52 +02:00
MachineIRBuilder.cpp CodeGen: Store LLT instead of uint64_t in MachineMemOperand 2021-06-29 17:38:51 -04:00
RegBankSelect.cpp [GlobalISel] Fix crash in RBS with a non-generic IMPLICIT_DEF. 2021-03-24 23:08:51 -07:00
RegisterBank.cpp [GlobalISel] Use ListSeparator (NFC) 2021-02-04 21:18:04 -08:00
RegisterBankInfo.cpp [CodeGen] Use llvm::append_range (NFC) 2021-01-21 19:59:46 -08:00
Utils.cpp [GlobalISel] NFC: Change LLT::scalarOrVector to take ElementCount. 2021-06-25 11:26:16 +01:00