2014-05-24 20:50:23 +08:00
|
|
|
set(LLVM_TARGET_DEFINITIONS AArch64.td)
|
|
|
|
|
|
|
|
tablegen(LLVM AArch64GenRegisterInfo.inc -gen-register-info)
|
|
|
|
tablegen(LLVM AArch64GenInstrInfo.inc -gen-instr-info)
|
2014-09-03 06:28:02 +08:00
|
|
|
tablegen(LLVM AArch64GenMCCodeEmitter.inc -gen-emitter)
|
2014-05-24 20:50:23 +08:00
|
|
|
tablegen(LLVM AArch64GenMCPseudoLowering.inc -gen-pseudo-lowering)
|
|
|
|
tablegen(LLVM AArch64GenAsmWriter.inc -gen-asm-writer)
|
|
|
|
tablegen(LLVM AArch64GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
|
|
|
|
tablegen(LLVM AArch64GenAsmMatcher.inc -gen-asm-matcher)
|
|
|
|
tablegen(LLVM AArch64GenDAGISel.inc -gen-dag-isel)
|
|
|
|
tablegen(LLVM AArch64GenFastISel.inc -gen-fast-isel)
|
|
|
|
tablegen(LLVM AArch64GenCallingConv.inc -gen-callingconv)
|
|
|
|
tablegen(LLVM AArch64GenSubtargetInfo.inc -gen-subtarget)
|
|
|
|
tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler)
|
2016-07-06 05:23:04 +08:00
|
|
|
tablegen(LLVM AArch64GenSystemOperands.inc -gen-searchable-tables)
|
2016-12-22 07:26:20 +08:00
|
|
|
if(LLVM_BUILD_GLOBAL_ISEL)
|
Re-commit: [globalisel] Tablegen-erate current Register Bank Information
Summary:
Adds a RegisterBank tablegen class that can be used to declare the register
banks and an associated tablegen pass to generate the necessary code.
Changes since first commit attempt:
* Added missing guards
* Added more missing guards
* Found and fixed a use-after-free bug involving Twine locals
Reviewers: t.p.northover, ab, rovka, qcolombet
Reviewed By: qcolombet
Subscribers: aditya_nandakumar, rengolin, kristof.beyls, vkalintiris, mgorny, dberris, llvm-commits, rovka
Differential Revision: https://reviews.llvm.org/D27338
llvm-svn: 292478
2017-01-19 19:15:55 +08:00
|
|
|
tablegen(LLVM AArch64GenRegisterBank.inc -gen-register-bank)
|
2016-12-22 07:26:20 +08:00
|
|
|
tablegen(LLVM AArch64GenGlobalISel.inc -gen-global-isel)
|
|
|
|
endif()
|
2016-07-06 05:23:04 +08:00
|
|
|
|
2014-05-24 20:50:23 +08:00
|
|
|
add_public_tablegen_target(AArch64CommonTableGen)
|
|
|
|
|
2016-04-07 01:38:12 +08:00
|
|
|
# List of all GlobalISel files.
|
2016-04-06 09:18:08 +08:00
|
|
|
set(GLOBAL_ISEL_FILES
|
2016-04-08 04:47:51 +08:00
|
|
|
AArch64CallLowering.cpp
|
2016-07-27 22:31:55 +08:00
|
|
|
AArch64InstructionSelector.cpp
|
2016-10-15 06:18:18 +08:00
|
|
|
AArch64LegalizerInfo.cpp
|
2016-04-07 01:38:12 +08:00
|
|
|
AArch64RegisterBankInfo.cpp
|
|
|
|
)
|
2016-04-06 09:18:08 +08:00
|
|
|
|
2016-04-07 01:38:12 +08:00
|
|
|
# Add GlobalISel files to the dependencies if the user wants to build it.
|
|
|
|
if(LLVM_BUILD_GLOBAL_ISEL)
|
|
|
|
set(GLOBAL_ISEL_BUILD_FILES ${GLOBAL_ISEL_FILES})
|
|
|
|
else()
|
|
|
|
set(GLOBAL_ISEL_BUILD_FILES"")
|
|
|
|
set(LLVM_OPTIONAL_SOURCES LLVMGlobalISel ${GLOBAL_ISEL_FILES})
|
2016-04-06 09:18:08 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
2014-05-24 20:50:23 +08:00
|
|
|
add_llvm_target(AArch64CodeGen
|
2014-08-08 20:33:21 +08:00
|
|
|
AArch64A57FPLoadBalancing.cpp
|
2014-05-24 20:50:23 +08:00
|
|
|
AArch64AdvSIMDScalarPass.cpp
|
|
|
|
AArch64AsmPrinter.cpp
|
|
|
|
AArch64CleanupLocalDynamicTLSPass.cpp
|
|
|
|
AArch64CollectLOH.cpp
|
|
|
|
AArch64ConditionalCompares.cpp
|
|
|
|
AArch64DeadRegisterDefinitionsPass.cpp
|
|
|
|
AArch64ExpandPseudoInsts.cpp
|
|
|
|
AArch64FastISel.cpp
|
2014-10-13 18:12:35 +08:00
|
|
|
AArch64A53Fix835769.cpp
|
2014-05-24 20:50:23 +08:00
|
|
|
AArch64FrameLowering.cpp
|
2014-09-05 10:55:24 +08:00
|
|
|
AArch64ConditionOptimizer.cpp
|
[AArch64] Add pass to remove redundant copy after RA
Summary:
This change will add a pass to remove unnecessary zero copies in target blocks
of cbz/cbnz instructions. E.g., the copy instruction in the code below can be
removed because the cbz jumps to BB1 when x0 is zero :
BB0:
cbz x0, .BB1
BB1:
mov x0, xzr
Jun
Reviewers: gberry, jmolloy, HaoLiu, MatzeB, mcrosier
Subscribers: mcrosier, mssimpso, haicheng, bmakam, llvm-commits, aemerson, rengolin
Differential Revision: http://reviews.llvm.org/D16203
llvm-svn: 261004
2016-02-17 04:02:39 +08:00
|
|
|
AArch64RedundantCopyElimination.cpp
|
2014-05-24 20:50:23 +08:00
|
|
|
AArch64ISelDAGToDAG.cpp
|
|
|
|
AArch64ISelLowering.cpp
|
|
|
|
AArch64InstrInfo.cpp
|
|
|
|
AArch64LoadStoreOptimizer.cpp
|
2017-02-01 10:54:34 +08:00
|
|
|
AArch64MacroFusion.cpp
|
2014-05-24 20:50:23 +08:00
|
|
|
AArch64MCInstLower.cpp
|
|
|
|
AArch64PromoteConstant.cpp
|
2014-09-10 22:06:10 +08:00
|
|
|
AArch64PBQPRegAlloc.cpp
|
2014-05-24 20:50:23 +08:00
|
|
|
AArch64RegisterInfo.cpp
|
|
|
|
AArch64SelectionDAGInfo.cpp
|
|
|
|
AArch64StorePairSuppress.cpp
|
|
|
|
AArch64Subtarget.cpp
|
|
|
|
AArch64TargetMachine.cpp
|
|
|
|
AArch64TargetObjectFile.cpp
|
|
|
|
AArch64TargetTransformInfo.cpp
|
2016-10-08 20:30:07 +08:00
|
|
|
AArch64VectorByElementOpt.cpp
|
2016-04-07 01:38:12 +08:00
|
|
|
${GLOBAL_ISEL_BUILD_FILES}
|
2014-05-24 20:50:23 +08:00
|
|
|
|
2016-11-17 12:36:50 +08:00
|
|
|
DEPENDS
|
|
|
|
intrinsics_gen
|
|
|
|
)
|
2014-05-24 20:50:23 +08:00
|
|
|
|
|
|
|
add_subdirectory(TargetInfo)
|
|
|
|
add_subdirectory(AsmParser)
|
|
|
|
add_subdirectory(Disassembler)
|
|
|
|
add_subdirectory(InstPrinter)
|
|
|
|
add_subdirectory(MCTargetDesc)
|
|
|
|
add_subdirectory(Utils)
|