Vendor import of llvm 2.8 release:
http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_28@115866 Approved by: rpaulo (mentor)
This commit is contained in:
parent
d39c594d39
commit
49011b52fc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/llvm/dist/; revision=213518 svn path=/vendor/llvm/llvm-2.8/; revision=213519; tag=vendor/llvm/llvm-2.8
@ -941,6 +941,11 @@ ifdef EXPORTED_SYMBOL_FILE
|
||||
# First, set up the native export file, which may differ from the source
|
||||
# export file.
|
||||
|
||||
# The option --version-script is not effective on GNU ld win32.
|
||||
ifneq (,$(filter $(HOST_OS),Cygwin MingW))
|
||||
HAVE_LINK_VERSION_SCRIPT := 0
|
||||
endif
|
||||
|
||||
ifeq ($(HOST_OS),Darwin)
|
||||
# Darwin convention prefixes symbols with underscores.
|
||||
NativeExportsFile := $(ObjDir)/$(notdir $(EXPORTED_SYMBOL_FILE)).sed
|
||||
|
@ -31,7 +31,7 @@ dnl===
|
||||
dnl===-----------------------------------------------------------------------===
|
||||
dnl Initialize autoconf and define the package name, version number and
|
||||
dnl email address for reporting bugs.
|
||||
AC_INIT([[llvm]],[[2.8rc]],[llvmbugs@cs.uiuc.edu])
|
||||
AC_INIT([[llvm]],[[2.8]],[llvmbugs@cs.uiuc.edu])
|
||||
|
||||
dnl Provide a copyright substitution and ensure the copyright notice is included
|
||||
dnl in the output of --version option of the generated configure script.
|
||||
|
20
configure
vendored
20
configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.60 for llvm 2.8rc.
|
||||
# Generated by GNU Autoconf 2.60 for llvm 2.8.
|
||||
#
|
||||
# Report bugs to <llvmbugs@cs.uiuc.edu>.
|
||||
#
|
||||
@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='llvm'
|
||||
PACKAGE_TARNAME='-llvm-'
|
||||
PACKAGE_VERSION='2.8rc'
|
||||
PACKAGE_STRING='llvm 2.8rc'
|
||||
PACKAGE_VERSION='2.8'
|
||||
PACKAGE_STRING='llvm 2.8'
|
||||
PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
|
||||
|
||||
ac_unique_file="lib/VMCore/Module.cpp"
|
||||
@ -1318,7 +1318,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures llvm 2.8rc to adapt to many kinds of systems.
|
||||
\`configure' configures llvm 2.8 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1384,7 +1384,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of llvm 2.8rc:";;
|
||||
short | recursive ) echo "Configuration of llvm 2.8:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1394,7 +1394,7 @@ Optional Features:
|
||||
--enable-optimized Compile with optimizations enabled (default is NO)
|
||||
--enable-profiling Compile with profiling enabled (default is NO)
|
||||
--enable-assertions Compile with assertion checks enabled (default is
|
||||
YES)
|
||||
NO)
|
||||
--enable-expensive-checks
|
||||
Compile with expensive debug checks enabled (default
|
||||
is NO)
|
||||
@ -1533,7 +1533,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
llvm configure 2.8rc
|
||||
llvm configure 2.8
|
||||
generated by GNU Autoconf 2.60
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
||||
@ -1549,7 +1549,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by llvm $as_me 2.8rc, which was
|
||||
It was created by llvm $as_me 2.8, which was
|
||||
generated by GNU Autoconf 2.60. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -21045,7 +21045,7 @@ exec 6>&1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by llvm $as_me 2.8rc, which was
|
||||
This file was extended by llvm $as_me 2.8, which was
|
||||
generated by GNU Autoconf 2.60. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -21098,7 +21098,7 @@ Report bugs to <bug-autoconf@gnu.org>."
|
||||
_ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF
|
||||
ac_cs_version="\\
|
||||
llvm config.status 2.8rc
|
||||
llvm config.status 2.8
|
||||
configured by $0, generated by GNU Autoconf 2.60,
|
||||
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -61,7 +61,7 @@ class SmallVectorBase {
|
||||
// number of union instances for the space, which guarantee maximal alignment.
|
||||
struct U {
|
||||
#ifdef __GNUC__
|
||||
char X __attribute__((aligned(8)));
|
||||
char X __attribute__((aligned));
|
||||
#else
|
||||
union {
|
||||
double D;
|
||||
|
@ -54,6 +54,11 @@ namespace {
|
||||
AU.addPreserved<MachineDominatorTree>();
|
||||
}
|
||||
|
||||
virtual void releaseMemory() {
|
||||
ScopeMap.clear();
|
||||
Exps.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
const unsigned LookAheadLimit;
|
||||
typedef ScopedHashTableScope<MachineInstr*, unsigned,
|
||||
@ -101,7 +106,7 @@ bool MachineCSE::PerformTrivialCoalescing(MachineInstr *MI,
|
||||
unsigned Reg = MO.getReg();
|
||||
if (!Reg || TargetRegisterInfo::isPhysicalRegister(Reg))
|
||||
continue;
|
||||
if (!MRI->hasOneUse(Reg))
|
||||
if (!MRI->hasOneNonDBGUse(Reg))
|
||||
// Only coalesce single use copies. This ensure the copy will be
|
||||
// deleted.
|
||||
continue;
|
||||
@ -469,6 +474,8 @@ bool MachineCSE::PerformCSE(MachineDomTreeNode *Node) {
|
||||
DenseMap<MachineDomTreeNode*, MachineDomTreeNode*> ParentMap;
|
||||
DenseMap<MachineDomTreeNode*, unsigned> OpenChildren;
|
||||
|
||||
CurrVN = 0;
|
||||
|
||||
// Perform a DFS walk to determine the order of visit.
|
||||
WorkList.push_back(Node);
|
||||
do {
|
||||
|
@ -1389,7 +1389,8 @@ ConvertToSetZeroFlag(MachineInstr *MI, MachineInstr *CmpInstr) const {
|
||||
|
||||
// Check that CPSR isn't set between the comparison instruction and the one we
|
||||
// want to change.
|
||||
MachineBasicBlock::const_iterator I = CmpInstr, E = MI;
|
||||
MachineBasicBlock::const_iterator I = CmpInstr, E = MI,
|
||||
B = MI->getParent()->begin();
|
||||
--I;
|
||||
for (; I != E; --I) {
|
||||
const MachineInstr &Instr = *I;
|
||||
@ -1403,6 +1404,10 @@ ConvertToSetZeroFlag(MachineInstr *MI, MachineInstr *CmpInstr) const {
|
||||
if (MO.getReg() == ARM::CPSR)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (I == B)
|
||||
// The 'and' is below the comparison instruction.
|
||||
return false;
|
||||
}
|
||||
|
||||
// Set the "zero" bit in CPSR.
|
||||
|
@ -5414,11 +5414,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
|
||||
return getMOVL(DAG, dl, VT, V2, V1);
|
||||
}
|
||||
|
||||
if (X86::isUNPCKLMask(SVOp))
|
||||
if (X86::isUNPCKL_v_undef_Mask(SVOp) || X86::isUNPCKLMask(SVOp))
|
||||
return (isMMX) ?
|
||||
Op : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V2, DAG);
|
||||
|
||||
if (X86::isUNPCKHMask(SVOp))
|
||||
if (X86::isUNPCKH_v_undef_Mask(SVOp) || X86::isUNPCKHMask(SVOp))
|
||||
return (isMMX) ?
|
||||
Op : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V2, DAG);
|
||||
|
||||
@ -5443,11 +5443,11 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue NewOp = CommuteVectorShuffle(SVOp, DAG);
|
||||
ShuffleVectorSDNode *NewSVOp = cast<ShuffleVectorSDNode>(NewOp);
|
||||
|
||||
if (X86::isUNPCKLMask(NewSVOp))
|
||||
if (X86::isUNPCKL_v_undef_Mask(NewSVOp) || X86::isUNPCKLMask(NewSVOp))
|
||||
return (isMMX) ?
|
||||
NewOp : getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V2, V1, DAG);
|
||||
|
||||
if (X86::isUNPCKHMask(NewSVOp))
|
||||
if (X86::isUNPCKH_v_undef_Mask(NewSVOp) || X86::isUNPCKHMask(NewSVOp))
|
||||
return (isMMX) ?
|
||||
NewOp : getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V2, V1, DAG);
|
||||
}
|
||||
@ -5494,13 +5494,6 @@ X86TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) const {
|
||||
TargetMask, DAG);
|
||||
}
|
||||
|
||||
if (X86::isUNPCKL_v_undef_Mask(SVOp))
|
||||
if (VT != MVT::v2i64 && VT != MVT::v2f64)
|
||||
return getTargetShuffleNode(getUNPCKLOpcode(VT), dl, VT, V1, V1, DAG);
|
||||
if (X86::isUNPCKH_v_undef_Mask(SVOp))
|
||||
if (VT != MVT::v2i64 && VT != MVT::v2f64)
|
||||
return getTargetShuffleNode(getUNPCKHOpcode(VT), dl, VT, V1, V1, DAG);
|
||||
|
||||
// Handle v8i16 specifically since SSE can do byte extraction and insertion.
|
||||
if (VT == MVT::v8i16) {
|
||||
SDValue NewOp = LowerVECTOR_SHUFFLEv8i16(Op, DAG);
|
||||
|
Loading…
Reference in New Issue
Block a user