mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
1bf9d7e37d
This patch makes sure shift instructions such as this one: %result = shl i32 %n, %amount are expanded just before the IR to SelectionDAG conversion to a loop so that calls to non-existing library functions such as __ashlsi3 are avoided. The generated code is currently pretty bad but there's a lot of room for improvement: the shift itself can be done in just four instructions. Differential Revision: https://reviews.llvm.org/D96677
54 lines
1.2 KiB
CMake
54 lines
1.2 KiB
CMake
add_llvm_component_group(AVR)
|
|
|
|
set(LLVM_TARGET_DEFINITIONS AVR.td)
|
|
|
|
tablegen(LLVM AVRGenAsmMatcher.inc -gen-asm-matcher)
|
|
tablegen(LLVM AVRGenAsmWriter.inc -gen-asm-writer)
|
|
tablegen(LLVM AVRGenCallingConv.inc -gen-callingconv)
|
|
tablegen(LLVM AVRGenDAGISel.inc -gen-dag-isel)
|
|
tablegen(LLVM AVRGenDisassemblerTables.inc -gen-disassembler)
|
|
tablegen(LLVM AVRGenInstrInfo.inc -gen-instr-info)
|
|
tablegen(LLVM AVRGenMCCodeEmitter.inc -gen-emitter)
|
|
tablegen(LLVM AVRGenRegisterInfo.inc -gen-register-info)
|
|
tablegen(LLVM AVRGenSubtargetInfo.inc -gen-subtarget)
|
|
|
|
add_public_tablegen_target(AVRCommonTableGen)
|
|
|
|
add_llvm_target(AVRCodeGen
|
|
AVRAsmPrinter.cpp
|
|
AVRExpandPseudoInsts.cpp
|
|
AVRFrameLowering.cpp
|
|
AVRInstrInfo.cpp
|
|
AVRISelDAGToDAG.cpp
|
|
AVRISelLowering.cpp
|
|
AVRMCInstLower.cpp
|
|
AVRRelaxMemOperations.cpp
|
|
AVRRegisterInfo.cpp
|
|
AVRShiftExpand.cpp
|
|
AVRSubtarget.cpp
|
|
AVRTargetMachine.cpp
|
|
AVRTargetObjectFile.cpp
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
|
|
LINK_COMPONENTS
|
|
AsmPrinter
|
|
CodeGen
|
|
Core
|
|
MC
|
|
AVRDesc
|
|
AVRInfo
|
|
SelectionDAG
|
|
Support
|
|
Target
|
|
|
|
ADD_TO_COMPONENT
|
|
AVR
|
|
)
|
|
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(Disassembler)
|
|
add_subdirectory(MCTargetDesc)
|
|
add_subdirectory(TargetInfo)
|