llvm-project/llvm/lib/Target/WebAssembly
Dan Gohman f71abef701 [WebAssembly] Implement calls with void return types.
llvm-svn: 247158
2015-09-09 16:13:47 +00:00
..
InstPrinter WebAssembly: Implement call 2015-08-24 22:16:48 +00:00
MCTargetDesc WebAssembly: add small FIXME for AsmPrinter. 2015-08-26 00:50:49 +00:00
TargetInfo
CMakeLists.txt [WebAssembly] Skeleton FastISel support 2015-08-24 18:44:37 +00:00
LLVMBuild.txt
Makefile [WebAssembly] Skeleton FastISel support 2015-08-24 18:44:37 +00:00
README.txt WebAssembly: add some TODO 2015-07-06 21:41:59 +00:00
Relooper.cpp [WebAssembly] Add Relooper 2015-08-15 01:23:28 +00:00
Relooper.h [WebAssembly] Add Relooper 2015-08-15 01:23:28 +00:00
WebAssembly.h
WebAssembly.td WebAssembly: add a generic CPU 2015-07-27 23:25:54 +00:00
WebAssemblyAsmPrinter.cpp [WebAssembly] Tidy up some unneeded newline characters. 2015-09-09 15:13:36 +00:00
WebAssemblyFastISel.cpp [WebAssembly] Skeleton FastISel support 2015-08-24 18:44:37 +00:00
WebAssemblyFrameLowering.cpp [WebAssembly] Use the checked form of MachineFunction::getSubtarget. NFC. 2015-08-24 16:46:31 +00:00
WebAssemblyFrameLowering.h WebAssembly: basic bitcode → assembly CodeGen test 2015-07-22 21:28:15 +00:00
WebAssemblyISD.def [WebAssembly] Implement calls with void return types. 2015-09-09 16:13:47 +00:00
WebAssemblyISelDAGToDAG.cpp WebAssembly: basic bitcode → assembly CodeGen test 2015-07-22 21:28:15 +00:00
WebAssemblyISelLowering.cpp [WebAssembly] Implement calls with void return types. 2015-09-09 16:13:47 +00:00
WebAssemblyISelLowering.h WebAssembly: Implement call 2015-08-24 22:16:48 +00:00
WebAssemblyInstrAtomics.td WebAssembly: basic instructions todo, and basic register info. 2015-07-10 18:23:10 +00:00
WebAssemblyInstrCall.td [WebAssembly] Implement calls with void return types. 2015-09-09 16:13:47 +00:00
WebAssemblyInstrControl.td WebAssembly: Implement call 2015-08-24 22:16:48 +00:00
WebAssemblyInstrConv.td WebAssembly: basic instructions todo, and basic register info. 2015-07-10 18:23:10 +00:00
WebAssemblyInstrFloat.td [WebAssembly] Implement floating point rounding operators. 2015-08-24 18:23:13 +00:00
WebAssemblyInstrFormats.td WebAssembly: Implement call 2015-08-24 22:16:48 +00:00
WebAssemblyInstrInfo.cpp [WebAssembly] Implement WebAssemblyInstrInfo::copyPhysReg 2015-09-09 00:52:47 +00:00
WebAssemblyInstrInfo.h [WebAssembly] Implement WebAssemblyInstrInfo::copyPhysReg 2015-09-09 00:52:47 +00:00
WebAssemblyInstrInfo.td [WebAssembly] Implement calls with void return types. 2015-09-09 16:13:47 +00:00
WebAssemblyInstrInteger.td WebAssembly: NFC rename shr/sar 2015-09-08 17:21:21 +00:00
WebAssemblyInstrMemory.td WebAssembly: generate load/store 2015-08-31 22:24:11 +00:00
WebAssemblyInstrSIMD.td WebAssembly: basic instructions todo, and basic register info. 2015-07-10 18:23:10 +00:00
WebAssemblyMachineFunctionInfo.cpp
WebAssemblyMachineFunctionInfo.h Fix typo "fuction" noticed in comments in AssumptionCache.h, and also all the other files that have the same typo. All comments, no functionality change! (Merely a "fuctionality" change.) 2015-07-29 22:32:47 +00:00
WebAssemblyRegisterInfo.cpp Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
WebAssemblyRegisterInfo.h Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
WebAssemblyRegisterInfo.td WebAssembly: basic instructions todo, and basic register info. 2015-07-10 18:23:10 +00:00
WebAssemblySelectionDAGInfo.cpp Unbreak WebAssembly build 2015-07-09 21:00:09 +00:00
WebAssemblySelectionDAGInfo.h Unbreak WebAssembly build 2015-07-09 21:00:09 +00:00
WebAssemblySubtarget.cpp Unbreak WebAssembly build 2015-07-09 21:00:09 +00:00
WebAssemblySubtarget.h WebAssembly: basic bitcode → assembly CodeGen test 2015-07-22 21:28:15 +00:00
WebAssemblyTargetMachine.cpp [WebAssembly] Support running without a register allocator in the default CodeGen passes 2015-09-08 20:36:33 +00:00
WebAssemblyTargetMachine.h
WebAssemblyTargetObjectFile.h Remove DataLayout from TargetLoweringObjectFile, redirect to Module 2015-07-16 06:04:17 +00:00
WebAssemblyTargetTransformInfo.cpp [WebAssembly] Tell TargetTransformInfo about popcnt and sqrt. 2015-08-24 16:51:46 +00:00
WebAssemblyTargetTransformInfo.h [WebAssembly] Tell TargetTransformInfo about popcnt and sqrt. 2015-08-24 16:51:46 +00:00

README.txt

//===-- README.txt - Notes for WebAssembly code gen -----------------------===//

This WebAssembly backend is presently in a very early stage of development.
The code should build and not break anything else, but don't expect a lot more
at this point.

For more information on WebAssembly itself, see the design documents:
  * https://github.com/WebAssembly/design/blob/master/README.md

The following documents contain some information on the planned semantics and
binary encoding of WebAssembly itself:
  * https://github.com/WebAssembly/design/blob/master/AstSemantics.md
  * https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md

Interesting work that remains to be done:
* Write a pass to restructurize irreducible control flow. This needs to be done
  before register allocation to be efficient, because it may duplicate basic
  blocks and WebAssembly performs register allocation at a whole-function
  level. Note that LLVM's GPU code has such a pass, but it linearizes control
  flow (e.g. both sides of branches execute and are masked) which is undesirable
  for WebAssembly.
* Basic relooper to expose control flow as an AST.
* Figure out how to properly use MC for virtual ISAs. This may require some
  refactoring of MC.

//===---------------------------------------------------------------------===//