llvm-project/llvm/lib/CodeGen/GlobalISel
Matt Arsenault 914a59cad8 GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES
Use an anyext to the requested type for the leftover operand to
produce a slightly wider type, and then truncate the final merge.

I have another implementation almost ready which handles arbitrary
widens, but I think it produces worse code in this example (which I
think is 90% due to not folding redundant copies or folding out
implicit_def users), so I wanted to add this as a baseline first.

llvm-svn: 366366
2019-07-17 20:22:38 +00:00
..
CMakeLists.txt [GISel]: Add support for CSEing continuously during GISel passes. 2019-01-16 00:40:37 +00:00
CSEInfo.cpp [GlobalISel] Enable CSE in the IRTranslator & legalizer for -O0 with constants only. 2019-04-15 05:04:20 +00:00
CSEMIRBuilder.cpp Re-apply r353553 "[GISel][NFC]: Add missing call to record CSE hits in the CSEMIRBuilder" 2019-02-08 23:34:11 +00:00
CallLowering.cpp GlobalISel: Add overload of handleAssignments with CCState 2019-07-16 22:41:34 +00:00
Combiner.cpp [GISel][NFC]: Add methods to speed up insertion into GISelWorklist 2019-02-15 01:37:54 +00:00
CombinerHelper.cpp [AArch64][GlobalISel] Optimize conditional branches followed by unconditional branches 2019-07-09 16:05:59 +00:00
GISelChangeObserver.cpp [AArch64][GlobalISel] Enable copy elision in the pre-legalizer combine and fix a crash. 2019-04-13 00:33:25 +00:00
GlobalISel.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IRTranslator.cpp GlobalISel: Define the full family of FP min/max instructions 2019-07-10 16:31:15 +00:00
InstructionSelect.cpp GlobalISel: Remove redundant pass initialization 2019-06-18 02:05:06 +00:00
InstructionSelector.cpp Allow target to handle STRICT floating-point nodes 2019-06-05 22:33:10 +00:00
LLVMBuild.txt Make GlobalISel depend on SelectionDAG after D63169 2019-06-22 01:30:17 +00:00
LegalityPredicates.cpp GlobalISel: Add alignment to LegalityQuery MMOs 2019-02-14 22:41:09 +00:00
LegalizeMutations.cpp GlobalISel: Try to make legalize rules more useful for vectors 2019-02-07 17:25:51 +00:00
Legalizer.cpp GlobalISel: Remove redundant pass initialization 2019-06-18 02:05:06 +00:00
LegalizerHelper.cpp GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES 2019-07-17 20:22:38 +00:00
LegalizerInfo.cpp [GlobalISel]: Allow backends to custom legalize Intrinsics 2019-07-01 17:53:50 +00:00
Localizer.cpp [GlobalISel][Localizer] Allow localization of G_INTTOPTR and chains of instructions. 2019-06-21 00:36:19 +00:00
MachineIRBuilder.cpp GlobalISel: Convert some build functions to using SrcOp/DstOp 2019-07-08 16:27:47 +00:00
RegBankSelect.cpp GlobalISel: Use Register 2019-06-28 01:47:44 +00:00
RegisterBank.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RegisterBankInfo.cpp GlobalISel: Use Register 2019-06-28 01:47:44 +00:00
Utils.cpp [AArch64][GlobalISel] Optimize compare and branch cases with G_INTTOPTR and unknown values. 2019-07-10 19:21:43 +00:00