Add the Lanai backend to lib/Target.
General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html).
Paths
| Differential D17011
[lanai] Add Lanai backend. ClosedPublic Authored by jpienaar on Feb 8 2016, 5:04 PM.
Details Summary Add the Lanai backend to lib/Target. General Lanai backend discussion on llvm-dev thread "[RFC] Lanai backend" (http://lists.llvm.org/pipermail/llvm-dev/2016-February/095118.html).
Diff Detail
Event Timelinejpienaar updated this object. Comment Actions Use LanaiMCExpr as suggested in http://reviews.llvm.org/D17008. Update Setflag ALU combiner and comments. jpienaar added parent revisions: D17008: [lanai] Add ELF enum value and relocations, D17002: [lanai] Add Lanai backend to clang driver.Feb 24 2016, 9:36 AM jpienaar updated this object. Comment Actions Hi, Sorry it took so long to take a look here. This seems like a fairly straightforward backend commit, and most of the code looks fine. My comments are generally trivia. I think the biggest issue is that the CodeGen test coverage is fairly weak. Missing facets I saw:
Cheers. Tim.
Comment Actions
I had thought that Jacques had indicated that most of the tests were in a separate patch just for size reasons, but I can't now find that patch.... Comment Actions
NM, the tests got merged in, and we just need more of them. jpienaar edited edge metadata. jpienaar marked 12 inline comments as done. Comment ActionsAddressed comments from review, modified DebugInfo test to use llc, modified ELFYAML which got moved, and added build files. Comment Actions Hi, Thanks for the comments and suggestions. We can definitely add more tests. Jacques
jpienaar marked 2 inline comments as done. Comment ActionsAdded test for custom passes, code models, removed subtarget features (always true), and some clean-up. Comment Actions Thanks for updating the patch. I've not quite got through the new one yet, but had one suggestion for now. Feel free to ignore and batch it up with the rest of my second pass if you want (or object). Cheers. Tim.
jpienaar marked 2 inline comments as done. Comment ActionsLower call in MCInstLowering and remove LanaiSaveReturnAddressPass. Comment Actions Thanks for the suggestion, doing the call lowering via MCInstLowering is better. Jacques Comment Actions Hi again, Thanks for doing the updates. I think this is looking pretty good now, hopefully even the last round of comments. Mostly trivia, with just one substantial issue over shifts. Cheers. Tim.
jpienaar edited edge metadata. jpienaar marked 6 inline comments as done. Comment ActionsChanged shift instructions to use shiftImm instead of imm6 and negImm6 variants. Comment Actions Hey, Thanks for the thorough review and good suggestions. Jacques
Comment Actions Hi, Some inline comments here about TargetMachine/Subtarget etc. In general, btw, if you're planning on using subtargets at all and subtarget features you're going to want to look at ports like AArch64 and X86 for guidance. You're saving some variables off to the side that you don't really need and probably won't ever need. :) I've pointed out some things inline. I'll take another look after these cleanups :) Thanks! -eric
jpienaar marked 9 inline comments as done. Comment ActionsSign extend shift immediates in the decoder, remove unused variables and correct variables not named according to naming convention. Comment Actions Some pretty particularly nitpicky comments. That said, really well done on the port and I'm happy when Tim gives a final thumbs up (don't bother uploading again with the changes I've requested, once you do them I'm fine :) Thanks! -eric
This revision is now accepted and ready to land.Mar 16 2016, 11:32 PM t.p.northover edited edge metadata. Comment ActionsI think I'm down to trivia too, and would be happy for you to commit without re-upload. Thanks for the many revisions! Tim.
Closed by commit rL264578: [lanai] Add Lanai backend. (authored by jpienaar). · Explain WhyMar 28 2016, 6:15 AM This revision was automatically updated to reflect the committed changes. jpienaar marked 17 inline comments as done. Comment Actions Updated and submitted. Thanks for the good suggestions, Jacques
Revision Contents
Diff 51785 llvm/trunk/CODE_OWNERS.TXT
llvm/trunk/lib/ObjectYAML/ELFYAML.cpp
llvm/trunk/lib/Target/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/AsmParser/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/AsmParser/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp
llvm/trunk/lib/Target/Lanai/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/Disassembler/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/Disassembler/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/Disassembler/LanaiDisassembler.h
llvm/trunk/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp
llvm/trunk/lib/Target/Lanai/InstPrinter/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/InstPrinter/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.h
llvm/trunk/lib/Target/Lanai/InstPrinter/LanaiInstPrinter.cpp
llvm/trunk/lib/Target/Lanai/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/Lanai.h
llvm/trunk/lib/Target/Lanai/Lanai.td
llvm/trunk/lib/Target/Lanai/LanaiAluCode.h
llvm/trunk/lib/Target/Lanai/LanaiAsmPrinter.cpp
llvm/trunk/lib/Target/Lanai/LanaiCallingConv.td
llvm/trunk/lib/Target/Lanai/LanaiCondCode.h
llvm/trunk/lib/Target/Lanai/LanaiDelaySlotFiller.cpp
llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.h
llvm/trunk/lib/Target/Lanai/LanaiFrameLowering.cpp
llvm/trunk/lib/Target/Lanai/LanaiISelDAGToDAG.cpp
llvm/trunk/lib/Target/Lanai/LanaiISelLowering.h
llvm/trunk/lib/Target/Lanai/LanaiISelLowering.cpp
llvm/trunk/lib/Target/Lanai/LanaiInstrFormats.td
llvm/trunk/lib/Target/Lanai/LanaiInstrInfo.h
llvm/trunk/lib/Target/Lanai/LanaiInstrInfo.cpp
llvm/trunk/lib/Target/Lanai/LanaiInstrInfo.td
llvm/trunk/lib/Target/Lanai/LanaiMCInstLower.h
llvm/trunk/lib/Target/Lanai/LanaiMCInstLower.cpp
llvm/trunk/lib/Target/Lanai/LanaiMachineFunctionInfo.h
llvm/trunk/lib/Target/Lanai/LanaiMachineFunctionInfo.cpp
llvm/trunk/lib/Target/Lanai/LanaiMemAluCombiner.cpp
llvm/trunk/lib/Target/Lanai/LanaiRegisterInfo.h
llvm/trunk/lib/Target/Lanai/LanaiRegisterInfo.cpp
llvm/trunk/lib/Target/Lanai/LanaiRegisterInfo.td
llvm/trunk/lib/Target/Lanai/LanaiSchedule.td
llvm/trunk/lib/Target/Lanai/LanaiSelectionDAGInfo.h
llvm/trunk/lib/Target/Lanai/LanaiSelectionDAGInfo.cpp
llvm/trunk/lib/Target/Lanai/LanaiSetflagAluCombiner.cpp
llvm/trunk/lib/Target/Lanai/LanaiSubtarget.h
llvm/trunk/lib/Target/Lanai/LanaiSubtarget.cpp
llvm/trunk/lib/Target/Lanai/LanaiTargetMachine.h
llvm/trunk/lib/Target/Lanai/LanaiTargetMachine.cpp
llvm/trunk/lib/Target/Lanai/LanaiTargetObjectFile.h
llvm/trunk/lib/Target/Lanai/LanaiTargetObjectFile.cpp
llvm/trunk/lib/Target/Lanai/LanaiTargetTransformInfo.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiBaseInfo.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiFixupKinds.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCExpr.cpp
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h
llvm/trunk/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp
llvm/trunk/lib/Target/Lanai/TargetInfo/CMakeLists.txt
llvm/trunk/lib/Target/Lanai/TargetInfo/LLVMBuild.txt
llvm/trunk/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp
llvm/trunk/test/CodeGen/Lanai/codemodel.ll
llvm/trunk/test/CodeGen/Lanai/combined_alu_setcc.ll
llvm/trunk/test/CodeGen/Lanai/comparisons_i32.ll
llvm/trunk/test/CodeGen/Lanai/constant_multiply.ll
llvm/trunk/test/CodeGen/Lanai/delay_filler.ll
llvm/trunk/test/CodeGen/Lanai/i32.ll
llvm/trunk/test/CodeGen/Lanai/lit.local.cfg
llvm/trunk/test/CodeGen/Lanai/mem_alu_combiner.ll
llvm/trunk/test/CodeGen/Lanai/multiply.ll
llvm/trunk/test/CodeGen/Lanai/select.ll
llvm/trunk/test/CodeGen/Lanai/set_and_hi.ll
llvm/trunk/test/CodeGen/Lanai/shift.ll
llvm/trunk/test/CodeGen/Lanai/stack-frame.ll
llvm/trunk/test/DebugInfo/Lanai/processes-relocations.ll
llvm/trunk/test/MC/Disassembler/Lanai/lit.local.cfg
llvm/trunk/test/MC/Disassembler/Lanai/v11.txt
llvm/trunk/test/MC/Lanai/lit.local.cfg
llvm/trunk/test/MC/Lanai/v11.s
llvm/trunk/test/Object/Lanai/yaml2obj-elf-lanai-rel.yaml
|