reduce diff against llvm/google/stable
diff --git a/OWNERS b/OWNERS
deleted file mode 100644
index ac015a5..0000000
--- a/OWNERS
+++ /dev/null
@@ -1,8 +0,0 @@
-dschuff@chromium.org
-eliben@chromium.org
-jfb@chromium.org
-jvoung@chromium.org
-kschimpf@chromium.org
-mseaborn@chromium.org
-sehr@chromium.org
-stichnot@chromium.org
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
deleted file mode 100644
index d81168e..0000000
--- a/PRESUBMIT.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright (c) 2012 The Native Client Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Documentation on PRESUBMIT.py can be found at:
-# http://www.chromium.org/developers/how-tos/depottools/presubmit-scripts
-
-EXCLUDE_PROJECT_CHECKS_DIRS = [ '.' ]
-
-import subprocess
-def CheckGitBranch():
- p = subprocess.Popen("git branch -vv", shell=True,
- stdout=subprocess.PIPE)
- output, _ = p.communicate()
-
- lines = output.split('\n')
- for line in lines:
- # output format for checked-out branch should be
- # * branchname hash [TrackedBranchName ...
- toks = line.split()
- if '*' not in toks[0]:
- continue
- if not 'origin/master' in toks[3]:
- warning = 'Warning: your current branch:\n' + line
- warning += '\nis not tracking origin/master. git cl push may silently '
- warning += 'fail to push your change. To fix this, do\n'
- warning += 'git branch -u origin/master'
- return warning
- return None
- print 'Warning: presubmit check could not determine local git branch'
- return None
-
-def _CommonChecks(input_api, output_api):
- """Checks for both upload and commit."""
- results = []
- results.extend(input_api.canned_checks.PanProjectChecks(
- input_api, output_api, project_name='Native Client',
- excluded_paths=tuple(EXCLUDE_PROJECT_CHECKS_DIRS)))
- branch_warning = CheckGitBranch()
- if branch_warning:
- results.append(output_api.PresubmitPromptWarning(branch_warning))
- return results
-
-def CheckChangeOnUpload(input_api, output_api):
- """Verifies all changes in all files.
- Args:
- input_api: the limited set of input modules allowed in presubmit.
- output_api: the limited set of output modules allowed in presubmit.
- """
- report = []
- report.extend(_CommonChecks(input_api, output_api))
- return report
-
-def CheckChangeOnCommit(input_api, output_api):
- """Verifies all changes in all files and verifies that the
- tree is open and can accept a commit.
- Args:
- input_api: the limited set of input modules allowed in presubmit.
- output_api: the limited set of output modules allowed in presubmit.
- """
- report = []
- report.extend(CheckChangeOnUpload(input_api, output_api))
- return report
-
-def GetPreferredTrySlaves(project, change):
- return []
diff --git a/codereview.settings b/codereview.settings
deleted file mode 100644
index fae9103..0000000
--- a/codereview.settings
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file is used by gcl to get repository specific information.
-CODE_REVIEW_SERVER: codereview.chromium.org
-CC_LIST: native-client-reviews@googlegroups.com
-VIEW_VC:
-https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-clang.git;a=commit;h=
-STATUS: http://nativeclient-status.appspot.com/status
-TRY_ON_UPLOAD: False
-TRYSERVER_PROJECT: nacl
-TRYSERVER_SVN_URL: svn://svn.chromium.org/chrome-try/try-nacl
-PUSH_URL_CONFIG: url.ssh://gerrit.chromium.org.pushinsteadof
-ORIGIN_URL_CONFIG: http://git.chromium.org
-
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
index eb71f24..865daf4 100644
--- a/lib/Basic/Targets.cpp
+++ b/lib/Basic/Targets.cpp
@@ -764,7 +764,6 @@
if (Triple.getArch() == llvm::Triple::arm) {
// Handled in ARM's setABI().
} else if (Triple.getArch() == llvm::Triple::x86) {
- // @LOCALMOD MERGETODO: upstream this if it actually works.
this->DescriptionString = "e-m:e-p:32:32-i64:64-n8:16:32-S128";
} else if (Triple.getArch() == llvm::Triple::x86_64) {
this->DescriptionString = "e-m:e-p:32:32-i64:64-n8:16:32:64-S128";
@@ -772,7 +771,7 @@
// Handled on mips' setDescriptionString.
} else {
assert(Triple.getArch() == llvm::Triple::le32);
- this->DescriptionString = "e-p:32:32-i64:64-n32";
+ this->DescriptionString = "e-p:32:32-i64:64";
}
}
};
diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index b4deb20..ebd1776 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -211,7 +211,8 @@
GV->setAlignment(getContext().getDeclAlign(&D).getQuantity());
setGlobalVisibility(GV, &D);
- maybeSetTrivialComdat(*GV);
+ if (supportsCOMDAT() && GV->isWeakForLinker())
+ GV->setComdat(TheModule.getOrInsertComdat(GV->getName()));
if (D.getTLSKind())
setTLSMode(GV, D);
diff --git a/lib/CodeGen/CGVTT.cpp b/lib/CodeGen/CGVTT.cpp
index aca9e7a..e3df5a4 100644
--- a/lib/CodeGen/CGVTT.cpp
+++ b/lib/CodeGen/CGVTT.cpp
@@ -94,7 +94,8 @@
// Set the correct linkage.
VTT->setLinkage(Linkage);
- CGM.maybeSetTrivialComdat(*VTT);
+ if (CGM.supportsCOMDAT() && VTT->isWeakForLinker())
+ VTT->setComdat(CGM.getModule().getOrInsertComdat(VTT->getName()));
// Set the right visibility.
CGM.setGlobalVisibility(VTT, RD);
diff --git a/lib/CodeGen/CGVTables.cpp b/lib/CodeGen/CGVTables.cpp
index 7d22d6c..3f5c7a4 100644
--- a/lib/CodeGen/CGVTables.cpp
+++ b/lib/CodeGen/CGVTables.cpp
@@ -464,6 +464,7 @@
// Normal thunk body generation.
CodeGenFunction(CGM).generateThunk(ThunkFn, FnInfo, GD, Thunk);
}
+
setThunkProperties(CGM, Thunk, ThunkFn, ForVTable, GD);
}
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 64ed0fb..0250aab 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -1293,7 +1293,8 @@
auto *GV = new llvm::GlobalVariable(
getModule(), Init->getType(),
/*isConstant=*/true, llvm::GlobalValue::LinkOnceODRLinkage, Init, Name);
- maybeSetTrivialComdat(*GV);
+ if (supportsCOMDAT())
+ GV->setComdat(TheModule.getOrInsertComdat(GV->getName()));
return GV;
}
@@ -1844,7 +1845,9 @@
OldGV->eraseFromParent();
}
- maybeSetTrivialComdat(*GV);
+ if (supportsCOMDAT() && GV->isWeakForLinker() &&
+ !GV->hasAvailableExternallyLinkage())
+ GV->setComdat(TheModule.getOrInsertComdat(GV->getName()));
return GV;
}
@@ -1977,14 +1980,6 @@
GO.setComdat(TheModule.getOrInsertComdat(GO.getName()));
}
-void CodeGenModule::maybeSetTrivialComdat(llvm::GlobalObject &GO) {
- if (!supportsCOMDAT())
- return;
- if (GO.isWeakForLinker() && !GO.hasAvailableExternallyLinkage()) {
- GO.setComdat(getModule().getOrInsertComdat(GO.getName()));
- }
-}
-
void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) {
llvm::Constant *Init = nullptr;
QualType ASTTy = D->getType();
@@ -2919,7 +2914,10 @@
nullptr, llvm::GlobalVariable::NotThreadLocal, AddrSpace);
GV->setAlignment(Alignment);
GV->setUnnamedAddr(true);
- CGM.maybeSetTrivialComdat(*GV);
+ if (GV->isWeakForLinker()) {
+ assert(CGM.supportsCOMDAT() && "Only COFF uses weak string literals");
+ GV->setComdat(M.getOrInsertComdat(GV->getName()));
+ }
return GV;
}
@@ -3101,7 +3099,8 @@
setGlobalVisibility(GV, VD);
GV->setAlignment(
getContext().getTypeAlignInChars(MaterializedType).getQuantity());
- maybeSetTrivialComdat(*GV);
+ if (supportsCOMDAT() && GV->isWeakForLinker())
+ GV->setComdat(TheModule.getOrInsertComdat(GV->getName()));
if (VD->getTLSKind())
setTLSMode(GV, *VD);
Slot = GV;
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index 4d20cdf..848188d 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -618,7 +618,6 @@
const llvm::Triple &getTriple() const;
bool supportsCOMDAT() const;
void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
- void maybeSetTrivialComdat(llvm::GlobalObject &GO);
CGCXXABI &getCXXABI() const { return *ABI; }
llvm::LLVMContext &getLLVMContext() { return VMContext; }
diff --git a/lib/CodeGen/ItaniumCXXABI.cpp b/lib/CodeGen/ItaniumCXXABI.cpp
index 2edd10e..fab8c9a 100644
--- a/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/lib/CodeGen/ItaniumCXXABI.cpp
@@ -1358,7 +1358,8 @@
// Set the correct linkage.
VTable->setLinkage(Linkage);
- CGM.maybeSetTrivialComdat(*VTable);
+ if (CGM.supportsCOMDAT() && VTable->isWeakForLinker())
+ VTable->setComdat(CGM.getModule().getOrInsertComdat(VTable->getName()));
// Set the right visibility.
CGM.setGlobalVisibility(VTable, RD);
@@ -1840,8 +1841,8 @@
if (!D.isLocalVarDecl() && C) {
guard->setComdat(C);
CGF.CurFn->setComdat(C);
- } else {
- CGM.maybeSetTrivialComdat(*guard);
+ } else if (CGM.supportsCOMDAT() && guard->isWeakForLinker()) {
+ guard->setComdat(CGM.getModule().getOrInsertComdat(guard->getName()));
}
CGM.setStaticLocalDeclGuardAddress(&D, guard);
@@ -3639,7 +3640,8 @@
// we don't want it to turn into an exported symbol.
fn->setLinkage(llvm::Function::LinkOnceODRLinkage);
fn->setVisibility(llvm::Function::HiddenVisibility);
- CGM.maybeSetTrivialComdat(*fn);
+ if (CGM.supportsCOMDAT())
+ fn->setComdat(CGM.getModule().getOrInsertComdat(fn->getName()));
// Set up the function.
llvm::BasicBlock *entry =
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
index ab17466..55d8dee 100644
--- a/lib/CodeGen/TargetInfo.cpp
+++ b/lib/CodeGen/TargetInfo.cpp
@@ -524,9 +524,6 @@
public:
PNaClTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT)
: TargetCodeGenInfo(new PNaClABIInfo(CGT)) {}
-
- bool addAsmMemoryAroundSyncSynchronize() const { return true; } // @LOCALMOD
- bool asmMemoryIsFence() const { return true; } // @LOCALMOD
};
void PNaClABIInfo::computeInfo(CGFunctionInfo &FI) const {
diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 9b62fd3..8defd5b 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -2359,7 +2359,7 @@
}
// Use provided linker, not system linker
- Linker = GetLinkerPath();
+ Linker = GetProgramPath("ld");
NaClArmMacrosPath = GetFilePath("nacl-arm-macros.s");
}
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 7334fdb..ce39b87 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -631,10 +631,6 @@
}
break;
- case llvm::Triple::NaCl: // @LOCALMOD
- FloatABI = "hard";
- break;
-
default:
switch (Triple.getEnvironment()) {
case llvm::Triple::GNUEABIHF:
@@ -1270,13 +1266,6 @@
CmdArgs.push_back(Args.MakeArgString("-mips-ssection-threshold=" + v));
A->claim();
}
-
- // @LOCALMOD-BEGIN
- if (Triple.getOS() == llvm::Triple::NaCl) {
- CmdArgs.push_back("-mllvm");
- CmdArgs.push_back("-direct-to-nacl");
- }
- // @LOCALMOD-END
}
/// getPPCTargetCPU - Get the (LLVM) name of the PowerPC cpu we are targeting.
diff --git a/test/CodeGen/NaCl/atomics.c b/test/CodeGen/NaCl/atomics.c
deleted file mode 100644
index 9922e93..0000000
--- a/test/CodeGen/NaCl/atomics.c
+++ /dev/null
@@ -1,64 +0,0 @@
-// Test frontend handling of synchronization builtins which NaCl handles
-// differently.
-// Modified from test/CodeGen/Atomics.c
-// RUN: %clang_cc1 -triple le32-unknown-nacl -emit-llvm %s -o - | FileCheck %s
-
-// CHECK: define void @test_sync_synchronize()
-// CHECK-NEXT: entry:
-void test_sync_synchronize (void)
-{
- __sync_synchronize ();
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
- // CHECK-NEXT: fence seq_cst
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
-
- // CHECK-NEXT: ret void
-}
-
-// CHECK: define void @test_asm_memory_1()
-// CHECK-NEXT: entry:
-void test_asm_memory_1 (void)
-{
- asm ("":::"memory");
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
- // CHECK-NEXT: fence seq_cst
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
-
- // CHECK-NEXT: ret void
-}
-
-// CHECK: define void @test_asm_memory_2()
-// CHECK-NEXT: entry:
-void test_asm_memory_2 (void)
-{
- asm volatile ("":::"memory");
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
- // CHECK-NEXT: fence seq_cst
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
-
- // CHECK-NEXT: ret void
-}
-
-// CHECK: define void @test_asm_memory_3()
-// CHECK-NEXT: entry:
-void test_asm_memory_3 (void)
-{
- __asm__ ("":::"memory");
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
- // CHECK-NEXT: fence seq_cst
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
-
- // CHECK-NEXT: ret void
-}
-
-// CHECK: define void @test_asm_memory_4()
-// CHECK-NEXT: entry:
-void test_asm_memory_4 (void)
-{
- __asm__ __volatile__ ("":::"memory");
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
- // CHECK-NEXT: fence seq_cst
- // CHECK-NEXT: call void asm sideeffect "", "~{memory}"()
-
- // CHECK-NEXT: ret void
-}
diff --git a/test/CodeGen/target-data.c b/test/CodeGen/target-data.c
index c4ef966..2c5c11a 100644
--- a/test/CodeGen/target-data.c
+++ b/test/CodeGen/target-data.c
@@ -76,7 +76,7 @@
// RUN: %clang_cc1 -triple le32-nacl -o - -emit-llvm %s | \
// RUN: FileCheck %s -check-prefix=LE32-NACL
-// LE32-NACL: target datalayout = "e-p:32:32-i64:64-n32"
+// LE32-NACL: target datalayout = "e-p:32:32-i64:64"
// RUN: %clang_cc1 -triple asmjs-emscripten -o - -emit-llvm %s | \
// RUN: FileCheck %s -check-prefix=ASMJS-EMSCRIPTEN
diff --git a/test/CodeGenCXX/thunks.cpp b/test/CodeGenCXX/thunks.cpp
index a4867e4..38afb9d 100644
--- a/test/CodeGenCXX/thunks.cpp
+++ b/test/CodeGenCXX/thunks.cpp
@@ -1,5 +1,5 @@
// RUN: %clang_cc1 %s -triple=x86_64-pc-linux-gnu -munwind-tables -emit-llvm -o - | FileCheck %s
-// RUN: %clang_cc1 %s -triple=x86_64-pc-linux-gnu -munwind-tables -emit-llvm -o - -O1 -disable-llvm-optzns | FileCheck %s --check-prefix=CHECK --check-prefix=CHECKOPT
+// RUN: %clang_cc1 %s -triple=x86_64-pc-linux-gnu -munwind-tables -emit-llvm -o - -O1 -disable-llvm-optzns | FileCheck %s
namespace Test1 {
@@ -389,7 +389,4 @@
// CHECK-LABEL: define linkonce_odr void @_ZN6Test101C3fooEv
// CHECK-LABEL: define linkonce_odr void @_ZThn8_N6Test101C3fooEv
-// CHECKOPT-LABEL: define available_externally void @_ZTv0_n24_N6Test161BIiE1fEv
-// CHECKOPT-NOT: comdat
-
// CHECK: attributes [[NUW]] = { nounwind uwtable{{.*}} }
diff --git a/test/Driver/nacl-direct.c b/test/Driver/nacl-direct.c
index f71e14f..5fe8576 100644
--- a/test/Driver/nacl-direct.c
+++ b/test/Driver/nacl-direct.c
@@ -9,7 +9,7 @@
// CHECK-I686: "-target-cpu" "pentium4"
// CHECK-I686: "-resource-dir" "foo"
// CHECK-I686: "-internal-isystem" "foo{{/|\\\\}}include"
-// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}include"
+// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}include"
// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include"
// CHECK-I686: as{{(.exe)?}}" "--32"
// CHECK-I686: ld{{(.exe)?}}"
@@ -17,7 +17,7 @@
// CHECK-I686: "-m" "elf_i386_nacl"
// CHECK-I686: "-static"
// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}lib32"
-// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}lib"
+// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}lib32"
// CHECK-I686: "-Lfoo{{/|\\\\}}lib{{/|\\\\}}i686-nacl"
// CHECK-I686-NOT: -lpthread
//
@@ -118,7 +118,7 @@
// CHECK-I686-CXX: "-resource-dir" "foo"
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
// CHECK-I686-CXX: "-internal-isystem" "foo{{/|\\\\}}include"
-// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}include"
+// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}include"
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include"
// CHECK-I686-CXX: "-lpthread"
diff --git a/test/lit.cfg b/test/lit.cfg
index e3d6d43..f78bb87 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -14,16 +14,6 @@
# name: The name of this test suite.
config.name = 'Clang'
-# @LOCALMOD-START
-# Msys tools like make and bash output paths like /c/dir/path. We need Windows
-# drive letters. Makefile.rules has $(ECHOPATH) to try to get Windows paths but
-# it doesn't work with autoconf substitutions like @FOO@=$(path)
-def FixMsysPath(path):
- if sys.platform == 'win32' and path and path.startswith('/'):
- return path[1] + ':' + path[2:]
- return path
-# @LOCALMOD-END
-
# Tweak PATH for Win32
if platform.system() == 'Windows':
# Seek sane tools in directories and set to $PATH.
@@ -65,7 +55,7 @@
config.test_source_root = os.path.dirname(__file__)
# test_exec_root: The root path where tests should be run.
-clang_obj_root = FixMsysPath(getattr(config, 'clang_obj_root', None))# @LOCALMOD
+clang_obj_root = getattr(config, 'clang_obj_root', None)
if clang_obj_root is not None:
config.test_exec_root = os.path.join(clang_obj_root, 'test')
@@ -103,10 +93,10 @@
# Tweak the PATH to include the tools dir and the scripts dir.
if clang_obj_root is not None:
- clang_tools_dir = FixMsysPath(getattr(config, 'clang_tools_dir', None)) # @LOCALMOD
+ clang_tools_dir = getattr(config, 'clang_tools_dir', None)
if not clang_tools_dir:
lit_config.fatal('No Clang tools dir set!')
- llvm_tools_dir = FixMsysPath(getattr(config, 'llvm_tools_dir', None)) # @LOCALMOD
+ llvm_tools_dir = getattr(config, 'llvm_tools_dir', None)
if not llvm_tools_dir:
lit_config.fatal('No LLVM tools dir set!')
path = os.path.pathsep.join((
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp
index d6c2cf4..fd0fbb4 100644
--- a/tools/driver/cc1as_main.cpp
+++ b/tools/driver/cc1as_main.cpp
@@ -28,7 +28,6 @@
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInstrInfo.h"
-#include "llvm/MC/MCNaCl.h" // @LOCALMOD
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCParser/MCAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
@@ -388,10 +387,6 @@
Opts.RelaxAll,
/*DWARFMustBeAtTheEnd*/ true));
Str.get()->InitSections(Opts.NoExecStack);
- // @LOCALMOD-BEGIN
- if (T.isOSNaCl())
- initializeNaClMCStreamer(*Str.get(), Ctx, T);
- // @LOCALMOD-END
}
bool Failed = false;
@@ -501,3 +496,4 @@
return !!Failed;
}
+