Go to the documentation of this file.
20 #include "llvm/IR/IntrinsicsPowerPC.h"
23 #define DEBUG_TYPE "ppc-gisel"
29 #define GET_GLOBALISEL_PREDICATE_BITSET
30 #include "PPCGenGlobalISel.inc"
31 #undef GET_GLOBALISEL_PREDICATE_BITSET
50 #define GET_GLOBALISEL_PREDICATES_DECL
51 #include "PPCGenGlobalISel.inc"
52 #undef GET_GLOBALISEL_PREDICATES_DECL
54 #define GET_GLOBALISEL_TEMPORARIES_DECL
55 #include "PPCGenGlobalISel.inc"
56 #undef GET_GLOBALISEL_TEMPORARIES_DECL
61 #define GET_GLOBALISEL_IMPL
62 #include "PPCGenGlobalISel.inc"
63 #undef GET_GLOBALISEL_IMPL
68 :
TII(*STI.getInstrInfo()),
TRI(*STI.getRegisterInfo()), RBI(RBI),
89 return new PPCInstructionSelector(
TM, Subtarget, RBI);
static StringRef getName(Value *V)
This is an optimization pass for GlobalISel generic memory operations.
#define GET_GLOBALISEL_PREDICATES_INIT
unsigned const TargetRegisterInfo * TRI
include(LLVM-Build) add_subdirectory(IR) add_subdirectory(FuzzMutate) add_subdirectory(FileCheck) add_subdirectory(InterfaceStub) add_subdirectory(IRReader) add_subdirectory(CodeGen) add_subdirectory(BinaryFormat) add_subdirectory(Bitcode) add_subdirectory(Bitstream) add_subdirectory(DWARFLinker) add_subdirectory(Extensions) add_subdirectory(Frontend) add_subdirectory(Transforms) add_subdirectory(Linker) add_subdirectory(Analysis) add_subdirectory(LTO) add_subdirectory(MC) add_subdirectory(MCA) add_subdirectory(ObjCopy) add_subdirectory(Object) add_subdirectory(ObjectYAML) add_subdirectory(Option) add_subdirectory(Remarks) add_subdirectory(Debuginfod) add_subdirectory(DebugInfo) add_subdirectory(DWP) add_subdirectory(ExecutionEngine) add_subdirectory(Target) add_subdirectory(AsmParser) add_subdirectory(LineEditor) add_subdirectory(ProfileData) add_subdirectory(Passes) add_subdirectory(TextAPI) add_subdirectory(ToolDrivers) add_subdirectory(XRay) if(LLVM_INCLUDE_TESTS) add_subdirectory(Testing) endif() add_subdirectory(WindowsDriver) add_subdirectory(WindowsManifest) set(LLVMCONFIGLIBRARYDEPENDENCIESINC "$
into xmm2 addss xmm2 xmm1 xmm3 addss xmm3 movaps xmm0 unpcklps xmm0 ret seems silly when it could just be one addps Expand libm rounding functions main should enable SSE DAZ mode and other fast SSE modes Think about doing i64 math in SSE regs on x86 This testcase should have no SSE instructions in and only one load from a constant double ret double C the select is being which prevents the dag combiner from turning select(load CPI1)
#define GET_GLOBALISEL_TEMPORARIES_INIT
InstructionSelector * createPPCInstructionSelector(const PPCTargetMachine &TM, const PPCSubtarget &Subtarget, const PPCRegisterBankInfo &RBI)
const HexagonInstrInfo * TII
Provides the logic to select generic machine instructions.
Representation of each machine instruction.
Common code between 32-bit and 64-bit PowerPC targets.
const char LLVMTargetMachineRef TM
static uint64_t selectImpl(uint64_t CandidateMask, uint64_t &NextInSequenceMask)