summaryrefslogtreecommitdiffstats
path: root/llgo
diff options
context:
space:
mode:
authorAndrew Wilkins <axwalk@gmail.com>2015-09-25 06:28:14 +0000
committerAndrew Wilkins <axwalk@gmail.com>2015-09-25 06:28:14 +0000
commitf69d45efc3c119c53cd725b422d88fe7edcfdb10 (patch)
treea39424daccd867bc7b88e98cf2b49e8fe58bfe72 /llgo
parent8016f3a4f5d5fd009a5c91d7d66eb6db3942daac (diff)
downloadbcm5719-llvm-f69d45efc3c119c53cd725b422d88fe7edcfdb10.tar.gz
bcm5719-llvm-f69d45efc3c119c53cd725b422d88fe7edcfdb10.zip
[llgo] irgen: always use TargetMachine's data layout
Summary: Another attempt at resolving the runtime assertion in llgoi due to data layout mismatch between module and execution engine. The X86 data layout constant appears to be unnecessary, and does not match what the execution engine picks. Using the registered Target, we pick the same data layout as the execution engine. While I was in the vicinity, I deleted the last remnants of PNaCl support. Reviewers: pcc Subscribers: jfb, llvm-commits, dschuff Differential Revision: http://reviews.llvm.org/D12630 llvm-svn: 248565
Diffstat (limited to 'llgo')
-rw-r--r--llgo/irgen/compiler.go13
-rw-r--r--llgo/irgen/targets.go15
2 files changed, 0 insertions, 28 deletions
diff --git a/llgo/irgen/compiler.go b/llgo/irgen/compiler.go
index 8f4e65f1aa6..c00a881a42a 100644
--- a/llgo/irgen/compiler.go
+++ b/llgo/irgen/compiler.go
@@ -20,7 +20,6 @@ import (
"log"
"sort"
"strconv"
- "strings"
llgobuild "llvm.org/llgo/build"
"llvm.org/llgo/debug"
@@ -110,15 +109,10 @@ type CompilerOptions struct {
type Compiler struct {
opts CompilerOptions
dataLayout string
- pnacl bool
}
func NewCompiler(opts CompilerOptions) (*Compiler, error) {
compiler := &Compiler{opts: opts}
- if strings.ToLower(compiler.opts.TargetTriple) == "pnacl" {
- compiler.opts.TargetTriple = PNaClTriple
- compiler.pnacl = true
- }
dataLayout, err := llvmDataLayout(compiler.opts.TargetTriple)
if err != nil {
return nil, err
@@ -133,7 +127,6 @@ func (c *Compiler) Compile(fset *token.FileSet, astFiles []*ast.File, importpath
CompilerOptions: c.opts,
dataLayout: c.dataLayout,
target: target,
- pnacl: c.pnacl,
llvmtypes: NewLLVMTypeMap(llvm.GlobalContext(), target),
}
return compiler.compile(fset, astFiles, importpath)
@@ -151,12 +144,6 @@ type compiler struct {
llvmtypes *llvmTypeMap
types *TypeMap
- // pnacl is set to true if the target triple was originally
- // specified as "pnacl". This is necessary, as the TargetTriple
- // field will have been updated to the true triple used to
- // compile PNaCl modules.
- pnacl bool
-
debug *debug.DIBuilder
}
diff --git a/llgo/irgen/targets.go b/llgo/irgen/targets.go
index 7715ab18866..3571cbe194d 100644
--- a/llgo/irgen/targets.go
+++ b/llgo/irgen/targets.go
@@ -20,17 +20,6 @@ import (
"llvm.org/llvm/bindings/go/llvm"
)
-// PNaClTriple is the LLVM target triple that should be used to compile
-// modules to be compatible with PNaCl (Portable Native Client).
-const PNaClTriple = "armv7-none-linux-gnueabi"
-
-// Below are the target data representation constants generated by clang.
-// For unknown targets, we enumerate all targets known to LLVM and use
-// the first one with a matching architecture.
-const (
- x86TargetData = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
-)
-
// llvmDataLayout returns the data layout string
// representation for the specified LLVM triple.
func llvmDataLayout(triple string) (string, error) {
@@ -39,10 +28,6 @@ func llvmDataLayout(triple string) (string, error) {
// canonical form may include a '-' character, which would
// have been translated to '_' for inclusion in a triple.
arch := parseArch(triple[:strings.IndexRune(triple, '-')])
- switch arch {
- case "x86-64":
- return x86TargetData, nil
- }
for target := llvm.FirstTarget(); target.C != nil; target = target.NextTarget() {
if arch == target.Name() {
machine := target.CreateTargetMachine(
OpenPOWER on IntegriCloud