aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-12-17 01:39:00 +0000
committerDan Gohman <dan433584@gmail.com>2015-12-17 01:39:00 +0000
commit05ac43fec33181a589748de29c1877a537e91b3b (patch)
treebb3e80ca4e0c0900b6224d492db7b847507abb2c /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
parentef8b4e22f7911a6e00efe471553107704c21564c (diff)
downloadllvm-05ac43fec33181a589748de29c1877a537e91b3b.zip
llvm-05ac43fec33181a589748de29c1877a537e91b3b.tar.gz
llvm-05ac43fec33181a589748de29c1877a537e91b3b.tar.bz2
[WebAssembly] Experimental ELF writer support
This creates the initial infrastructure for writing ELF output files. It doesn't yet have any implementation for encoding instructions. Differential Revision: http://reviews.llvm.org/D15555 llvm-svn: 255869
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
index c33c21f..38568fc 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -15,7 +15,6 @@
#include "WebAssembly.h"
#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "WebAssemblyTargetMachine.h"
-#include "WebAssemblyTargetObjectFile.h"
#include "WebAssemblyTargetTransformInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/Passes.h"
@@ -49,7 +48,7 @@ WebAssemblyTargetMachine::WebAssemblyTargetMachine(
: LLVMTargetMachine(T, TT.isArch64Bit() ? "e-p:64:64-i64:64-n32:64-S128"
: "e-p:32:32-i64:64-n32:64-S128",
TT, CPU, FS, Options, RM, CM, OL),
- TLOF(make_unique<WebAssemblyTargetObjectFile>()) {
+ TLOF(make_unique<TargetLoweringObjectFileELF>()) {
// WebAssembly type-checks expressions, but a noreturn function with a return
// type that doesn't match the context will cause a check failure. So we lower
// LLVM 'unreachable' to ISD::TRAP and then lower that to WebAssembly's
@@ -171,7 +170,7 @@ void WebAssemblyPassConfig::addPreRegAlloc() {
addPass(createWebAssemblyRegStackify());
// The register coalescing pass has a bad interaction with COPY MIs which have
// EXPR_STACK as an extra operand
- //disablePass(&RegisterCoalescerID);
+ // disablePass(&RegisterCoalescerID);
}
void WebAssemblyPassConfig::addPostRegAlloc() {
@@ -198,7 +197,7 @@ void WebAssemblyPassConfig::addPostRegAlloc() {
void WebAssemblyPassConfig::addPreEmitPass() {
TargetPassConfig::addPreEmitPass();
-
+
// Put the CFG in structured form; insert BLOCK and LOOP markers.
addPass(createWebAssemblyCFGStackify());