diff options
author | Peter Hawkins <phawkins@google.com> | 2017-06-07 20:13:37 -0700 |
---|---|---|
committer | TensorFlower Gardener <gardener@tensorflow.org> | 2017-06-07 20:18:36 -0700 |
commit | cd5ac40b31afaec237aaee35007f2dc846caf811 (patch) | |
tree | 803e96dfdf81430f369c5ccbea2daf4bed2c597c /third_party/llvm | |
parent | 845539f98302a2a42ba595ee1f197959064c3d1c (diff) |
[XLA] Update LLVM to upstream revision r304927.
Add LLVM build rules for the LLVM AMDGPU backend, commented out by default. Fixes issue #10437.
PiperOrigin-RevId: 158351480
Diffstat (limited to 'third_party/llvm')
-rw-r--r-- | third_party/llvm/llvm.BUILD | 239 |
1 files changed, 229 insertions, 10 deletions
diff --git a/third_party/llvm/llvm.BUILD b/third_party/llvm/llvm.BUILD index 2b52a991c4..32266997a7 100644 --- a/third_party/llvm/llvm.BUILD +++ b/third_party/llvm/llvm.BUILD @@ -24,23 +24,20 @@ llvm_host_triple = "x86_64-unknown-linux_gnu" llvm_targets = [ "AArch64", + # Uncomment to enable the AMDGPU backend. + # TODO(phawkins): use a configure-time test. + # "AMDGPU", "ARM", "NVPTX", "PowerPC", "X86", ] -llvm_target_asm_parsers = [ - "AArch64", - "ARM", - "NVPTX", - "PowerPC", - "X86", -] +llvm_target_asm_parsers = llvm_targets -llvm_target_asm_printers = llvm_target_asm_parsers +llvm_target_asm_printers = llvm_targets -llvm_target_disassemblers = llvm_target_asm_parsers +llvm_target_disassemblers = llvm_targets # TODO(phawkins): the set of CMake variables was hardcoded for expediency. # However, we should really detect many of these via configure-time tests. @@ -353,6 +350,26 @@ llvm_target_list = [ ], }, { + "name": "AMDGPU", + "lower_name": "amdgpu", + "short_name": "AMDGPU", + "tbl_outs": [ + ("-gen-register-bank", "lib/Target/AMDGPU/AMDGPUGenRegisterBank.inc"), + ("-gen-register-info", "lib/Target/AMDGPU/AMDGPUGenRegisterInfo.inc"), + ("-gen-instr-info", "lib/Target/AMDGPU/AMDGPUGenInstrInfo.inc"), + ("-gen-dag-isel", "lib/Target/AMDGPU/AMDGPUGenDAGISel.inc"), + ("-gen-callingconv", "lib/Target/AMDGPU/AMDGPUGenCallingConv.inc"), + ("-gen-subtarget", "lib/Target/AMDGPU/AMDGPUGenSubtargetInfo.inc"), + ("-gen-tgt-intrinsic", "lib/Target/AMDGPU/AMDGPUGenIntrinsics.inc"), + ("-gen-emitter", "lib/Target/AMDGPU/AMDGPUGenMCCodeEmitter.inc"), + ("-gen-dfa-packetizer", "lib/Target/AMDGPU/AMDGPUGenDFAPacketizer.inc"), + ("-gen-asm-writer", "lib/Target/AMDGPU/AMDGPUGenAsmWriter.inc"), + ("-gen-asm-matcher", "lib/Target/AMDGPU/AMDGPUGenAsmMatcher.inc"), + ("-gen-disassembler", "lib/Target/AMDGPU/AMDGPUGenDisassemblerTables.inc"), + ("-gen-pseudo-lowering", "lib/Target/AMDGPU/AMDGPUGenMCPseudoLowering.inc"), + ], + }, + { "name": "ARM", "lower_name": "arm", "short_name": "ARM", @@ -436,7 +453,6 @@ llvm_target_list = [ "include/llvm/IR/Intrinsics*.td", "include/llvm/TableGen/*.td", "include/llvm/Target/*.td", - "include/llvm/Target/GlobalISel/*.td", ]), ) for target in llvm_target_list @@ -648,6 +664,7 @@ cc_library( "include/llvm/Analysis/*.inc", ]), deps = [ + ":binary_format", ":config", ":core", ":object", @@ -657,6 +674,184 @@ cc_library( ) cc_library( + name = "amdgpu_desc", + srcs = glob([ + "lib/Target/AMDGPU/MCTargetDesc/*.c", + "lib/Target/AMDGPU/MCTargetDesc/*.cpp", + "lib/Target/AMDGPU/MCTargetDesc/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/MCTargetDesc/*.h", + "include/llvm/Target/AMDGPU/MCTargetDesc/*.def", + "include/llvm/Target/AMDGPU/MCTargetDesc/*.inc", + "lib/Target/AMDGPU/MCTargetDesc/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_asm_printer", + ":amdgpu_info", + ":amdgpu_utils", + ":config", + ":core", + ":mc", + ":support", + ], +) + +cc_library( + name = "amdgpu_disassembler", + srcs = glob([ + "lib/Target/AMDGPU/Disassembler/*.c", + "lib/Target/AMDGPU/Disassembler/*.cpp", + "lib/Target/AMDGPU/Disassembler/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/Disassembler/*.h", + "include/llvm/Target/AMDGPU/Disassembler/*.def", + "include/llvm/Target/AMDGPU/Disassembler/*.inc", + "lib/Target/AMDGPU/Disassembler/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_desc", + ":amdgpu_info", + ":amdgpu_utils", + ":config", + ":mc", + ":mc_disassembler", + ":support", + ], +) + +cc_library( + name = "amdgpu_info", + srcs = glob([ + "lib/Target/AMDGPU/TargetInfo/*.c", + "lib/Target/AMDGPU/TargetInfo/*.cpp", + "lib/Target/AMDGPU/TargetInfo/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/TargetInfo/*.h", + "include/llvm/Target/AMDGPU/TargetInfo/*.def", + "include/llvm/Target/AMDGPU/TargetInfo/*.inc", + "lib/Target/AMDGPU/TargetInfo/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_target_gen", + ":config", + ":core", + ":support", + ], +) + +cc_library( + name = "amdgpu_utils", + srcs = glob([ + "lib/Target/AMDGPU/Utils/*.c", + "lib/Target/AMDGPU/Utils/*.cpp", + "lib/Target/AMDGPU/Utils/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/Utils/*.h", + "include/llvm/Target/AMDGPU/Utils/*.def", + "include/llvm/Target/AMDGPU/Utils/*.inc", + "lib/Target/AMDGPU/Utils/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_target_gen", + ":config", + ":core", + ":mc", + ":support", + ], +) + +cc_library( + name = "amdgpu_asm_parser", + srcs = glob([ + "lib/Target/AMDGPU/AsmParser/*.c", + "lib/Target/AMDGPU/AsmParser/*.cpp", + "lib/Target/AMDGPU/AsmParser/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/AsmParser/*.h", + "include/llvm/Target/AMDGPU/AsmParser/*.def", + "include/llvm/Target/AMDGPU/AsmParser/*.inc", + "lib/Target/AMDGPU/AsmParser/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_desc", + ":amdgpu_info", + ":amdgpu_utils", + ":config", + ":mc", + ":mc_parser", + ":support", + ], +) + +cc_library( + name = "amdgpu_asm_printer", + srcs = glob([ + "lib/Target/AMDGPU/InstPrinter/*.c", + "lib/Target/AMDGPU/InstPrinter/*.cpp", + "lib/Target/AMDGPU/InstPrinter/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/InstPrinter/*.h", + "include/llvm/Target/AMDGPU/InstPrinter/*.def", + "include/llvm/Target/AMDGPU/InstPrinter/*.inc", + "lib/Target/AMDGPU/InstPrinter/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_utils", + ":config", + ":mc", + ":support", + ], +) + +cc_library( + name = "amdgpu_code_gen", + srcs = glob([ + "lib/Target/AMDGPU/*.c", + "lib/Target/AMDGPU/*.cpp", + "lib/Target/AMDGPU/*.inc", + ]), + hdrs = glob([ + "include/llvm/Target/AMDGPU/*.h", + "include/llvm/Target/AMDGPU/*.def", + "include/llvm/Target/AMDGPU/*.inc", + "lib/Target/AMDGPU/*.h", + ]), + copts = ["-Iexternal/llvm/lib/Target/AMDGPU"], + deps = [ + ":amdgpu_asm_printer", + ":amdgpu_desc", + ":amdgpu_info", + ":amdgpu_utils", + ":analysis", + ":asm_printer", + ":code_gen", + ":config", + ":core", + ":global_i_sel", + ":ipo", + ":mc", + ":scalar", + ":selection_dag", + ":support", + ":target", + ":transform_utils", + ":vectorize", + ], +) + +cc_library( name = "arm_asm_parser", srcs = glob([ "lib/Target/ARM/AsmParser/*.c", @@ -824,6 +1019,7 @@ cc_library( "include/llvm/AsmParser/*.inc", ]), deps = [ + ":binary_format", ":config", ":core", ":support", @@ -842,9 +1038,11 @@ cc_library( "include/llvm/CodeGen/AsmPrinter/*.h", "include/llvm/CodeGen/AsmPrinter/*.def", "include/llvm/CodeGen/AsmPrinter/*.inc", + "lib/CodeGen/AsmPrinter/*.def", ]), deps = [ ":analysis", + ":binary_format", ":code_gen", ":config", ":core", @@ -858,6 +1056,25 @@ cc_library( ) cc_library( + name = "binary_format", + srcs = glob([ + "lib/BinaryFormat/*.c", + "lib/BinaryFormat/*.cpp", + "lib/BinaryFormat/*.inc", + "lib/BinaryFormat/*.h", + ]), + hdrs = glob([ + "include/llvm/BinaryFormat/*.h", + "include/llvm/BinaryFormat/*.def", + "include/llvm/BinaryFormat/*.inc", + ]), + deps = [ + ":config", + ":support", + ], +) + +cc_library( name = "bit_reader", srcs = glob([ "lib/Bitcode/Reader/*.c", @@ -956,6 +1173,7 @@ cc_library( deps = [ ":attributes_compat_gen", ":attributes_gen", + ":binary_format", ":config", ":intrinsics_gen", ":support", @@ -1376,6 +1594,7 @@ cc_library( "include/llvm/Object/*.inc", ]), deps = [ + ":binary_format", ":bit_reader", ":config", ":core", |