oota-llvm.git
11 years agoRefactor lowering for COPY_STRUCT_BYVAL_I32
David Peixotto [Thu, 17 Oct 2013 19:49:22 +0000 (19:49 +0000)]
Refactor lowering for COPY_STRUCT_BYVAL_I32

This commit refactors the lowering of the COPY_STRUCT_BYVAL_I32
pseudo-instruction in the ARM backend. We introduce a new helper
class that encapsulates all of the operations needed during the
lowering. The operations are implemented for each subtarget in
different subclasses. Currently only arm and thumb2 subtargets are
supported.

This refactoring was done to easily implement support for thumb1
subtargets. This initial patch does not add support for thumb1, but
is only a refactoring. A follow on patch will implement the support
for thumb1 subtargets.

No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192915 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm-c: Add LLVMIntPtrType{,ForAS}InContext
Anders Waldenborg [Thu, 17 Oct 2013 18:51:01 +0000 (18:51 +0000)]
llvm-c: Add LLVMIntPtrType{,ForAS}InContext

All of the Core API functions have versions which accept explicit context, in
addition to ones which work on global context. This commit adds functions
which accept explicit context to the Target API for consistency.

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1912

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192913 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCMake: set stack size for MSVC in just one place
Hans Wennborg [Thu, 17 Oct 2013 18:39:47 +0000 (18:39 +0000)]
CMake: set stack size for MSVC in just one place

After r192904, Reid pointed out he thought we already set the stack
size for MSVC. Turns out we did, but it didn't seem to work.

This commit sets the stack size in a single place, using
CMAKE_EXE_LINKER_FLAGS because that seems to be the way that works
best.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192912 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRename fields of GlobalStatus to match the coding style.
Rafael Espindola [Thu, 17 Oct 2013 18:18:52 +0000 (18:18 +0000)]
Rename fields of GlobalStatus to match the coding style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192910 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[AArch64] Add support for NEON scalar three register different instruction
Chad Rosier [Thu, 17 Oct 2013 18:12:29 +0000 (18:12 +0000)]
[AArch64] Add support for NEON scalar three register different instruction
class.  The instruction class includes the signed saturating doubling
multiply-add long, signed saturating doubling multiply-subtract long, and
the signed saturating doubling multiply long instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192908 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agorename SafeToDestroyConstant to isSafeToDestroyConstant and clang-format.
Rafael Espindola [Thu, 17 Oct 2013 18:06:32 +0000 (18:06 +0000)]
rename SafeToDestroyConstant to isSafeToDestroyConstant and clang-format.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192907 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSimplify the interface of AnalyzeGlobal a bit and rename to analyzeGlobal.
Rafael Espindola [Thu, 17 Oct 2013 18:00:25 +0000 (18:00 +0000)]
Simplify the interface of AnalyzeGlobal a bit and rename to analyzeGlobal.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192906 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCMake: set stack size to 2MB for MSVC builds
Hans Wennborg [Thu, 17 Oct 2013 17:49:57 +0000 (17:49 +0000)]
CMake: set stack size to 2MB for MSVC builds

Compiling under Visual C++ 2012 with the default stack size of 1MB, the stack
overflows at a depth of 216 template instantiations, well before the 256
default limit. This patch modifies the default MSVC stack size to 2MB.

Patch by Yaron Keren!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192904 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd testcase to make sure we don't generate a compact unwind section for ELF binaries.
Bill Wendling [Thu, 17 Oct 2013 17:38:49 +0000 (17:38 +0000)]
Add testcase to make sure we don't generate a compact unwind section for ELF binaries.

This tests r190354.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192903 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[mips][msa] Added lsa instruction
Daniel Sanders [Thu, 17 Oct 2013 13:38:20 +0000 (13:38 +0000)]
[mips][msa] Added lsa instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192895 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[DebugInfo] Delete dead code, simplify and fix code style for some existing code...
Alexey Samsonov [Thu, 17 Oct 2013 13:28:16 +0000 (13:28 +0000)]
[DebugInfo] Delete dead code, simplify and fix code style for some existing code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192894 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLit: LIT_PRESERVES_TMP should be aware of TMPDIR, too.
NAKAMURA Takumi [Thu, 17 Oct 2013 13:11:13 +0000 (13:11 +0000)]
Lit: LIT_PRESERVES_TMP should be aware of TMPDIR, too.

TMPDIR is preferred in Unix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192891 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix tests not to depend on specific regalloc or instruction order.
Benjamin Kramer [Thu, 17 Oct 2013 12:41:05 +0000 (12:41 +0000)]
Fix tests not to depend on specific regalloc or instruction order.

They were failing with -mcpu=atom.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192890 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix r192888: test/CodeGen/Mips/msa/3r_ld_st.ll should have been deleted
Daniel Sanders [Thu, 17 Oct 2013 12:36:35 +0000 (12:36 +0000)]
Fix r192888: test/CodeGen/Mips/msa/3r_ld_st.ll should have been deleted

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192889 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[mips][msa] Removed ldx.[bhwd] and stx.[bhwd].
Daniel Sanders [Thu, 17 Oct 2013 12:16:03 +0000 (12:16 +0000)]
[mips][msa] Removed ldx.[bhwd] and stx.[bhwd].

These were present in a previous version of the MSA spec but are not
present in the published version. There is no hardware that uses these
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192888 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoLit: Introduce an environment variable, $LIT_PRESERVES_TMP, to preserve TMP (and...
NAKAMURA Takumi [Thu, 17 Oct 2013 12:10:12 +0000 (12:10 +0000)]
Lit: Introduce an environment variable, $LIT_PRESERVES_TMP, to preserve TMP (and TEMP).

This is intended to check how many temporary files would be generated in automated builders.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192887 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReplace sra with srl if a single sign bit is required
Richard Sandiford [Thu, 17 Oct 2013 11:16:57 +0000 (11:16 +0000)]
Replace sra with srl if a single sign bit is required

E.g. (and (sra (i32 x) 31) 2) -> (and (srl (i32 x) 30) 2).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192884 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix edge condition in DAGCombiner to improve codegen of shift sequences.
Andrea Di Biagio [Thu, 17 Oct 2013 11:02:58 +0000 (11:02 +0000)]
Fix edge condition in DAGCombiner to improve codegen of shift sequences.

When canonicalizing dags according to the rule
(shl (zext (shr X, c1) ), c1) ==> (zext (shl (shr X, c1), c1))

remember to add the new shl dag to the DAGCombiner worklist of nodes.
If we don't explicitly add it to the worklist of nodes to visit, we
may not trigger later on the rule that folds the shift left + logical
shift right into a AND instruction with bitmask.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192883 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[msan] Use zero-extension in shadow cast by default.
Evgeniy Stepanov [Thu, 17 Oct 2013 10:53:50 +0000 (10:53 +0000)]
[msan] Use zero-extension in shadow cast by default.

Switch to sign-extension in r192575 caused 7% perf loss on 482.sphinx3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192882 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm-c: Don't assert in LLVMTargetMachineEmitToFile on nonexistent file
Anders Waldenborg [Thu, 17 Oct 2013 10:39:35 +0000 (10:39 +0000)]
llvm-c: Don't assert in LLVMTargetMachineEmitToFile on nonexistent file

Error handling code for raw_fd_ostream constructor is present, but
never used, because formatted_raw_ostream will always assert on closed
fd's before.

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1909

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192881 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[mips][msa] Correct definition order of ftrunc_[su], ftint_[su], and ftq.
Daniel Sanders [Thu, 17 Oct 2013 10:30:12 +0000 (10:30 +0000)]
[mips][msa] Correct definition order of ftrunc_[su], ftint_[su], and ftq.

Define these three instructions in alphabetical order (like the rest of the
file).
No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192880 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoChanging DebugInfoFinder to iterate over all the compile units.
Michael Kuperstein [Thu, 17 Oct 2013 10:27:12 +0000 (10:27 +0000)]
Changing DebugInfoFinder to iterate over all the compile units.
Solves http://llvm.org/bugs/show_bug.cgi?id=17507

Committed on behalf of alon.mishne@intel.com

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192879 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm-c: Return NULL from LLVMGetFirstTarget instead of asserting
Anders Waldenborg [Thu, 17 Oct 2013 10:25:24 +0000 (10:25 +0000)]
llvm-c: Return NULL from LLVMGetFirstTarget instead of asserting

If no targets are registered, LLVMGetFirstTarget currently fails with
an assertion. This patch makes it return NULL instead, similarly to
how LLVMGetNextTarget would.

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1908

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192878 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agotsan: implement no_sanitize_thread attribute
Dmitry Vyukov [Thu, 17 Oct 2013 07:20:06 +0000 (07:20 +0000)]
tsan: implement no_sanitize_thread attribute
If a function has no_sanitize_thread attribute,
do not instrument memory accesses in it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192871 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agox86: Move bitcasts outside concat_vector.
Jim Grosbach [Thu, 17 Oct 2013 02:58:06 +0000 (02:58 +0000)]
x86: Move bitcasts outside concat_vector.

Consider the following:

typedef unsigned short ushort4U __attribute__((ext_vector_type(4),
aligned(2)));
typedef unsigned short ushort4 __attribute__((ext_vector_type(4)));
typedef unsigned short ushort8 __attribute__((ext_vector_type(8)));
typedef int int4 __attribute__((ext_vector_type(4)));

int4 __bbase_cvt_int(ushort4 v) {
  ushort8 a;
  a.lo = v;
  return _mm_cvtepu16_epi32(a);
}

This generates the, not unreasonable, IR:
define <4 x i32> @foo0(double %v.coerce) nounwind ssp {
  %tmp = bitcast double %v.coerce to <4 x i16>
  %tmp1 = shufflevector <4 x i16> %tmp, <4 x i16> undef, <8 x i32> <i32
  %0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
  %tmp2 = tail call <4 x i32> @llvm.x86.sse41.pmovzxwd(<8 x i16> %tmp1)
  ret <4 x i32> %tmp2
}

The problem is when type legalization gets hold of the v4i16. It
legalizes that by spilling to the stack, then doing a zero-extending
load. Things go even more silly from there, ending up with something
like:
_foo0:
  movsd %xmm0, -8(%rsp)       <== Spill to the stack.
  movq  -8(%rsp), %xmm0       <== Reload it right back out.
  pmovzxwd  %xmm0, %xmm1      <== Here's what we actually asked for.
  pblendw $1, %xmm1, %xmm0    <== We don't need this at all
  pmovzxwd  %xmm0, %xmm0      <== We already did this
  ret

The v8i8 to v8i16 zext intrinsic gives even worse results, with two
table lookups via pshufb instructions(!!).

To avoid all that, we can move the bitcasting until after we've formed
the wider (legal) vector type. Then our normal codegen flows along
nicely and we get the expected:
_foo0:
  pmovzxwd  %xmm0, %xmm0
  ret

rdar://15245794

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192866 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAccording to the dwarf standard pubnames and pubtypes for languages
Eric Christopher [Thu, 17 Oct 2013 02:06:06 +0000 (02:06 +0000)]
According to the dwarf standard pubnames and pubtypes for languages
like C++ should be the fully qualified names for the type.

Add a routine that does a language specific context walk to build
up the qualified name and use it when we add types/names to the
tables. Expand the gnu pubnames testcase as it's the most complex
to make sure that qualified types are also being added.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192865 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoExpose install_fatal_error_handler() through the C API.
Filip Pizlo [Thu, 17 Oct 2013 01:38:28 +0000 (01:38 +0000)]
Expose install_fatal_error_handler() through the C API.

I expose the API with some caveats:

- The C++ API involves a traditional void* opaque pointer for the fatal
error callback.  The C API doesn’t do this.  I don’t think that the void*
opaque pointer makes any sense since this is a global callback - there will
only be one of them.  So if you need to pass some data to your callback,
just put it in a global variable.

- The bindings will ignore the gen_crash_diag boolean.  I ignore it because
(1) I don’t know what it does, (2) it’s not documented AFAIK, and (3) I
couldn’t imagine any use for it.  I made the gut call that it probably
wasn’t important enough to expose through the C API.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192864 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[projects/test-suite] White space and long line fixes.
Jack Carter [Thu, 17 Oct 2013 01:34:33 +0000 (01:34 +0000)]
[projects/test-suite] White space and long line fixes.

No functionality changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192863 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd the subprogram DIEs to the context they're created with only
Eric Christopher [Thu, 17 Oct 2013 01:31:12 +0000 (01:31 +0000)]
Add the subprogram DIEs to the context they're created with only
if they're a declaration, otherwise they're owned by the compile
unit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192861 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRe-commit r192758 - MC: quote tricky symbol names in asm output
Hans Wennborg [Thu, 17 Oct 2013 01:13:02 +0000 (01:13 +0000)]
Re-commit r192758 - MC: quote tricky symbol names in asm output

The reason this got reverted was that the @feat.00 symbol which was emitted
for every TU became quoted, and on cygwin/mingw we use the gas assembler which
couldn't handle the quotes.

This commit fixes the problem by only emitting @feat.00 for win32, where we use
clang -cc1as to assemble. gas would just drop this symbol anyway, so there is no
loss there.

With @feat.00 gone, there shouldn't be quoted symbols showing up on cygwin since
it uses the Itanium ABI, which doesn't put these funny characters in symbols.

> Because of win32 mangling, we produce symbol and section names with
> funny characters in them, most notably @ characters.
>
> MC would choke on trying to parse its own assembly output. This patch addresses
> that by:
>
> - Making @ trigger quoting of symbol names
> - Also quote section names in the same way
> - Just parse section names like other identifiers (to allow for quotes)
> - Don't assume @ signifies a symbol variant if it is in a string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192859 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDIEHash: Include the type's context in the type hash.
David Blaikie [Thu, 17 Oct 2013 00:10:34 +0000 (00:10 +0000)]
DIEHash: Include the type's context in the type hash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192856 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDIEHash: Use DW_FORM_sdata for integers, per spec.
David Blaikie [Wed, 16 Oct 2013 23:36:20 +0000 (23:36 +0000)]
DIEHash: Use DW_FORM_sdata for integers, per spec.

This allows us to produce the same hash as GCC for at least some simple
examples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192855 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoInvert arguments to ASSERT_EQ to match gtest diagnostic printing
David Blaikie [Wed, 16 Oct 2013 22:43:10 +0000 (22:43 +0000)]
Invert arguments to ASSERT_EQ to match gtest diagnostic printing

GTest assumes the left hand side of the assert is the expectation and
the right hand side is the test result. It's easier to read gtest
failures when these things are ordered correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192854 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm-c: Add LLVMDumpType
Anders Waldenborg [Wed, 16 Oct 2013 21:30:25 +0000 (21:30 +0000)]
llvm-c: Add LLVMDumpType

The C API currently allows to dump values (LLVMDumpValue), but a similar method for types was not exported.

Patch by Peter Zotov

Differential Revision: http://llvm-reviews.chandlerc.com/D1911

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192852 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUpdate test case due to DIE hashing in r192836
David Blaikie [Wed, 16 Oct 2013 21:21:51 +0000 (21:21 +0000)]
Update test case due to DIE hashing in r192836

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192850 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[AArch64] Add support for NEON scalar negate instruction.
Chad Rosier [Wed, 16 Oct 2013 21:04:39 +0000 (21:04 +0000)]
[AArch64] Add support for NEON scalar negate instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192843 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[AArch64] Add support for NEON scalar absolute value instruction.
Chad Rosier [Wed, 16 Oct 2013 21:04:34 +0000 (21:04 +0000)]
[AArch64] Add support for NEON scalar absolute value instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192842 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove ambiguity introduced in r192836
David Blaikie [Wed, 16 Oct 2013 20:40:46 +0000 (20:40 +0000)]
Remove ambiguity introduced in r192836

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192840 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd support for the VSX target attribute. No functional change
Eric Christopher [Wed, 16 Oct 2013 20:38:58 +0000 (20:38 +0000)]
Add support for the VSX target attribute. No functional change
as we don't actually use it to emit any code yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192837 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDIEHash: Include the trailing zero byte after the children of a DIE
David Blaikie [Wed, 16 Oct 2013 20:29:06 +0000 (20:29 +0000)]
DIEHash: Include the trailing zero byte after the children of a DIE

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192836 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAllow repeated registration again.
Rafael Espindola [Wed, 16 Oct 2013 20:21:39 +0000 (20:21 +0000)]
Allow repeated registration again.

Our use of -fvisibility-inlines-hidden means we cannot check function pointers
against non null values.

Unfortunately, we also cannot assert that the callbacks are initialized only
once. The problem is that lldb has multiple subsystems that need to call this
and they don't have a unique initialization order.

Thanks to Sean Callanan for reporting it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192835 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoEnabling 3DNow! prefetch instruction for a few AMD processors: bobcat, jaguar,
Yunzhong Gao [Wed, 16 Oct 2013 19:04:11 +0000 (19:04 +0000)]
Enabling 3DNow! prefetch instruction for a few AMD processors: bobcat, jaguar,
bulldozer and piledriver. Support for the instruction itself seems to have
already been added in r178040.

Differential Revision: http://llvm-reviews.chandlerc.com/D1933

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192828 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoCreate an atom with just the data that failed to disassemble.
Rafael Espindola [Wed, 16 Oct 2013 19:03:14 +0000 (19:03 +0000)]
Create an atom with just the data that failed to disassemble.

Patch by Stephen Checkoway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192827 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove an outdated statement.
Rafael Espindola [Wed, 16 Oct 2013 18:37:51 +0000 (18:37 +0000)]
Remove an outdated statement.

Aliases now have their own section where we document which linkages they can
have.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192825 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAfter PostRA scheduling, don't set kill flags on undef operands.
Andrew Trick [Wed, 16 Oct 2013 18:30:23 +0000 (18:30 +0000)]
After PostRA scheduling, don't set kill flags on undef operands.

This should fix the ATOM buildbot failing on break-avx-dep.ll.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192824 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix MCDataAtom never calling remap when adding data.
Rafael Espindola [Wed, 16 Oct 2013 18:26:16 +0000 (18:26 +0000)]
Fix MCDataAtom never calling remap when adding data.

This patch fixes a small mistake in MCDataAtom::addData() where it doesn't ever
call remap():

-  if (Data.size() > Begin - End - 1)
+  if (Data.size() > End + 1 - Begin)
     remap(Begin, End + 1);

This is currently not visible because of another bug is the disassembler, so
the patch includes a unit test.

Patch by Stephen Checkoway.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192823 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[llvm-c] Add LLVMPrintModuleToString.
Anders Waldenborg [Wed, 16 Oct 2013 18:00:54 +0000 (18:00 +0000)]
[llvm-c] Add LLVMPrintModuleToString.

Like LLVMDumpModule but returns the string (that needs to be freed
with LLVMDisposeMessage) instead of printing it to stderr.

Differential Revision: http://llvm-reviews.chandlerc.com/D1941

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192821 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSLPVectorizer: Don't vectorize volatile memory operations
Arnold Schwaighofer [Wed, 16 Oct 2013 17:52:40 +0000 (17:52 +0000)]
SLPVectorizer: Don't vectorize volatile memory operations

radar://15231682

Reapply r192799,
  http://lab.llvm.org:8011/builders/lldb-x86_64-debian-clang/builds/8226
showed that the bot is still broken even with this out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192820 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert "SLPVectorizer: Don't vectorize volatile memory operations"
Arnold Schwaighofer [Wed, 16 Oct 2013 17:19:40 +0000 (17:19 +0000)]
Revert "SLPVectorizer: Don't vectorize volatile memory operations"

This speculatively reverts commit 192799. It might have broken a linux buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192816 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Fix a crash in the AMDILCFGStructurizer
Tom Stellard [Wed, 16 Oct 2013 17:06:02 +0000 (17:06 +0000)]
R600: Fix a crash in the AMDILCFGStructurizer

We were calling llvm_unreachable() when failing to optimize the
branch into if case.  However, it is still possible for us
to structurize the CFG by duplicating blocks even if this optimization
fails.

Reviewed-by: Vincent Lejeune<vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192813 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600: Remove some dead code from the AMDILCFGStructurizer
Tom Stellard [Wed, 16 Oct 2013 17:05:56 +0000 (17:05 +0000)]
R600: Remove some dead code from the AMDILCFGStructurizer

Reviewed-by: Vincent Lejeune<vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192812 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoPort to FileCheck.
Rafael Espindola [Wed, 16 Oct 2013 16:47:56 +0000 (16:47 +0000)]
Port to FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192810 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdding oprofile support for MCJIT.
Andrew Kaylor [Wed, 16 Oct 2013 16:32:47 +0000 (16:32 +0000)]
Adding oprofile support for MCJIT.

Patch by Dmitry Stogov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192809 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUpdate comment.
Chad Rosier [Wed, 16 Oct 2013 16:30:10 +0000 (16:30 +0000)]
Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192806 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix comment.
Chad Rosier [Wed, 16 Oct 2013 16:22:15 +0000 (16:22 +0000)]
Fix comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192805 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAssert on duplicate registration. Don't depend on function pointer equality.
Rafael Espindola [Wed, 16 Oct 2013 16:21:40 +0000 (16:21 +0000)]
Assert on duplicate registration. Don't depend on function pointer equality.

Before this patch we would assert when building llvm as multiple shared
libraries (cmake's BUILD_SHARED_LIBS). The problem was the line

if (T.AsmStreamerCtorFn == Target::createDefaultAsmStreamer)

which returns false because of -fvisibility-inlines-hidden. It is easy
to fix just this one case, but I decided to try to also make the
registration more strict. It looks like the old logic for ignoring
followup registration was just a temporary hack that outlived its
usefulness.

This patch converts the ifs to asserts, fixes the few cases that were
registering twice and makes sure all the asserts compare with null.

Thanks for Joerg for reporting the problem and reviewing the patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192803 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[AArch64] Add support for NEON scalar signed saturating accumulated of unsigned
Chad Rosier [Wed, 16 Oct 2013 16:09:02 +0000 (16:09 +0000)]
[AArch64] Add support for NEON scalar signed saturating accumulated of unsigned
value and unsigned saturating accumulate of signed value instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192800 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSLPVectorizer: Don't vectorize volatile memory operations
Arnold Schwaighofer [Wed, 16 Oct 2013 16:09:00 +0000 (16:09 +0000)]
SLPVectorizer: Don't vectorize volatile memory operations

radar://15231682

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192799 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd more documentation about the TargetStreamer interface.
Rafael Espindola [Wed, 16 Oct 2013 14:54:39 +0000 (14:54 +0000)]
Add more documentation about the TargetStreamer interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192796 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoDAGCombiner: Don't fold xor into not if getNOT would introduce an illegal constant.
Benjamin Kramer [Wed, 16 Oct 2013 14:16:19 +0000 (14:16 +0000)]
DAGCombiner: Don't fold xor into not if getNOT would introduce an illegal constant.

This happens e.g. with <2 x i64> -1 on x86_32. It cannot be generated directly
because i64 is illegal. It would be nice if getNOT would handle this
transparently, but I don't see a way to generate a legal constant there right
now. Fixes PR17487.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192795 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[asan] Optimize accesses to global arrays with constant index
Kostya Serebryany [Wed, 16 Oct 2013 14:06:14 +0000 (14:06 +0000)]
[asan] Optimize accesses to global arrays with constant index

Summary:
Given a global array G[N], which is declared in this CU and has static initializer
avoid instrumenting accesses like G[i], where 'i' is a constant and 0<=i<N.
Also add a bit of stats.

This eliminates ~1% of instrumentations on SPEC2006
and also partially helps when asan is being run together with coverage.

Reviewers: samsonov

Reviewed By: samsonov

CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1947

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192794 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[SystemZ] Handle extensions in RxSBG optimizations
Richard Sandiford [Wed, 16 Oct 2013 13:35:13 +0000 (13:35 +0000)]
[SystemZ] Handle extensions in RxSBG optimizations

The input to an RxSBG operation can be narrower as long as the upper bits
are don't care.  This fixes a FIXME added in r192783.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192790 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[pr17595] Fix a use after free.
Rafael Espindola [Wed, 16 Oct 2013 12:47:04 +0000 (12:47 +0000)]
[pr17595] Fix a use after free.

Destroying the codegen also frees the path of the created object. Copy the
path to a std::string.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192787 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[SystemZ] Improve handling of SETCC
Richard Sandiford [Wed, 16 Oct 2013 11:10:55 +0000 (11:10 +0000)]
[SystemZ] Improve handling of SETCC

We previously used the default expansion to SELECT_CC, which in turn would
expand to "LHI; BRC; LHI".  In most cases it's better to use an IPM-based
sequence instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192784 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoHandle (shl (anyext (shr ...))) in SimpilfyDemandedBits
Richard Sandiford [Wed, 16 Oct 2013 10:26:19 +0000 (10:26 +0000)]
Handle (shl (anyext (shr ...))) in SimpilfyDemandedBits

This is really an extension of the current (shl (shr ...)) -> shl optimization.
The main difference is that certain upper bits must also not be demanded.

The motivating examples are the first two in the testcase, which occur
in llvmpipe output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192783 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agollvm-symbolizer: don't always run demangler on global object names
Alexey Samsonov [Wed, 16 Oct 2013 09:54:49 +0000 (09:54 +0000)]
llvm-symbolizer: don't always run demangler on global object names

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192781 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a 'deleteModule' method to the Linker class.
Bill Wendling [Wed, 16 Oct 2013 08:59:57 +0000 (08:59 +0000)]
Add a 'deleteModule' method to the Linker class.

This deletes the Module ivar instead of having the LTO code generater do it. It
also sets the pointer to 'NULL', so that if it's used again it will abort
quickly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192778 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRevert r192758 (and r192759), "MC: Better handling of tricky symbol and section names"
NAKAMURA Takumi [Wed, 16 Oct 2013 08:22:49 +0000 (08:22 +0000)]
Revert r192758 (and r192759), "MC: Better handling of tricky symbol and section names"

GNU AS didn't like quotes in symbol names.

    Error: junk at end of line, first unrecognized character is `"'

        .def "@feat.00";
        "@feat.00" = 1

Reproduced on Cygwin's 2.23.52.20130309 and mingw32's 2.20.1.20100303.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192775 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReally fix build warning/error that I think r192756 was trying to fix.
Craig Topper [Wed, 16 Oct 2013 06:50:36 +0000 (06:50 +0000)]
Really fix build warning/error that I think r192756 was trying to fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192773 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoTypeFinder: prefer iterative algorithm to keep stack usage low.
Will Dietz [Wed, 16 Oct 2013 04:10:06 +0000 (04:10 +0000)]
TypeFinder: prefer iterative algorithm to keep stack usage low.

Introduce subtype_reverse_iterator to maintain
the numbering assigned during the recursive type walk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192770 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a bug in Windows resource file detection.
Rui Ueyama [Wed, 16 Oct 2013 03:29:49 +0000 (03:29 +0000)]
Fix a bug in Windows resource file detection.

The magic bytes should not include the trailing NUL byte.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192769 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a triple to this test.
Rafael Espindola [Wed, 16 Oct 2013 02:27:33 +0000 (02:27 +0000)]
Add a triple to this test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192767 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd support for metadata representing .ident directives.
Rafael Espindola [Wed, 16 Oct 2013 01:49:05 +0000 (01:49 +0000)]
Add support for metadata representing .ident directives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192764 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix a pair of bugs in the emission of pubname tables:
Eric Christopher [Wed, 16 Oct 2013 01:37:49 +0000 (01:37 +0000)]
Fix a pair of bugs in the emission of pubname tables:

1) Make sure we emit static member variables by checking
at the end of createGlobalVariableDIE rather than piecemeal
in the function.
(As a note, createGlobalVariableDIE needs rewriting.)

2) Make sure we use the definition rather than declaration DIE
for two things: a) determining linkage for gnu pubnames, and b)
as the address of the DIE for global variables.
(As a note, createGlobalVariableDIE really needs rewriting.)

Adjust the testcase to make sure we're checking the correct DIEs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192761 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd a MCAsmInfoELF class and factor some code into it.
Rafael Espindola [Wed, 16 Oct 2013 01:34:32 +0000 (01:34 +0000)]
Add a MCAsmInfoELF class and factor some code into it.

We had a MCAsmInfoCOFF, but no common class for all the ELF MCAsmInfos before.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192760 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agodos2unix on quoted-names.ll
Hans Wennborg [Wed, 16 Oct 2013 01:22:07 +0000 (01:22 +0000)]
dos2unix on quoted-names.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192759 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMC: Better handling of tricky symbol and section names
Hans Wennborg [Wed, 16 Oct 2013 01:20:40 +0000 (01:20 +0000)]
MC: Better handling of tricky symbol and section names

Because of win32 mangling, we produce symbol and section names with
funny characters in them, most notably @ characters.

MC would choke on trying to parse its own assembly output. This patch addresses
that by:

- Making @ trigger quoting of symbol names
- Also quote section names in the same way
- Just parse section names like other identifiers (to allow for quotes)
- Don't assume @ signifies a symbol variant if it is in a string.

Differential Revision: http://llvm-reviews.chandlerc.com/D1945

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192758 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMove .ident handling to MCStreamer.
Rafael Espindola [Wed, 16 Oct 2013 01:05:45 +0000 (01:05 +0000)]
Move .ident handling to MCStreamer.

No functionality change, but exposes the API so that codegen can use it too.

Patch by Katya Romanova.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192757 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFixing build warning/error
Andrew Kaylor [Wed, 16 Oct 2013 01:01:15 +0000 (01:01 +0000)]
Fixing build warning/error

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192756 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSimplify zero initialization of DIEAttrs variable.
David Blaikie [Wed, 16 Oct 2013 00:47:21 +0000 (00:47 +0000)]
Simplify zero initialization of DIEAttrs variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192755 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdding padding to the .eh_frame section in RuntimeDyld
Andrew Kaylor [Wed, 16 Oct 2013 00:32:24 +0000 (00:32 +0000)]
Adding padding to the .eh_frame section in RuntimeDyld

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192754 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdding support for deregistering EH frames with MCJIT.
Andrew Kaylor [Wed, 16 Oct 2013 00:14:21 +0000 (00:14 +0000)]
Adding support for deregistering EH frames with MCJIT.

Patch by Yaron Keren

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192753 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix typo
Matt Arsenault [Tue, 15 Oct 2013 23:44:48 +0000 (23:44 +0000)]
Fix typo

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192752 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix missing C++ mode thing in header
Matt Arsenault [Tue, 15 Oct 2013 23:44:45 +0000 (23:44 +0000)]
Fix missing C++ mode thing in header

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192751 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoEnable MI Sched for x86.
Andrew Trick [Tue, 15 Oct 2013 23:33:07 +0000 (23:33 +0000)]
Enable MI Sched for x86.

This changes the SelectionDAG scheduling preference to source
order. Soon, the SelectionDAG scheduler can be bypassed saving
a nice chunk of compile time.

Performance differences that result from this change are often a
consequence of register coalescing. The register coalescer is far from
perfect. Bugs can be filed for deficiencies.

On x86 SandyBridge/Haswell, the source order schedule is often
preserved, particularly for small blocks.

Register pressure is generally improved over the SD scheduler's ILP
mode. However, we are still able to handle large blocks that require
latency hiding, unlike the SD scheduler's BURR mode. MI scheduler also
attempts to discover the critical path in single-block loops and
adjust heuristics accordingly.

The MI scheduler relies on the new machine model. This is currently
unimplemented for AVX, so we may not be generating the best code yet.

Unit tests are updated so they don't depend on SD scheduling heuristics.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192750 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoMake sure we're not attempting to construct a subprogram DIE
Eric Christopher [Tue, 15 Oct 2013 23:31:38 +0000 (23:31 +0000)]
Make sure we're not attempting to construct a subprogram DIE
twice and just look up the value. Fix the one case where
we were trying to create a subprogram DIE and we should already
have had one. Reflow formatting in collectDeadVariables while fixing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192749 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoAdd an assert that we have a scope that matters for methods
Eric Christopher [Tue, 15 Oct 2013 23:31:36 +0000 (23:31 +0000)]
Add an assert that we have a scope that matters for methods
and remove a call to getNonCompileUnitScope as a method
shouldn't be in the compile unit scope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192748 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoClean up, formatting, comments. No functional change.
Eric Christopher [Tue, 15 Oct 2013 23:31:31 +0000 (23:31 +0000)]
Clean up, formatting, comments. No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192747 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSupport/FileSystem.h: Remove a trailing comma in enum file_magic::Impl.
NAKAMURA Takumi [Tue, 15 Oct 2013 23:01:44 +0000 (23:01 +0000)]
Support/FileSystem.h: Remove a trailing comma in enum file_magic::Impl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192745 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoUse ASSERT_EQ rather than ASSERT_TRUE for better unit test failures.
David Blaikie [Tue, 15 Oct 2013 23:00:17 +0000 (23:00 +0000)]
Use ASSERT_EQ rather than ASSERT_TRUE for better unit test failures.

Also minor using namespace move so it's not hard-up against the function
definition and outside the namespace as is usual.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192744 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoR600/SI: Remove some leftover MI dump call
Vincent Lejeune [Tue, 15 Oct 2013 22:48:51 +0000 (22:48 +0000)]
R600/SI: Remove some leftover MI dump call

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192743 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoPath: Recognize Windows compiled resource file.
Rui Ueyama [Tue, 15 Oct 2013 22:45:38 +0000 (22:45 +0000)]
Path: Recognize Windows compiled resource file.

Some background: One can pass compiled resource files (.res files) directly
to the linker on Windows. If a resource file is given, the linker will run
"cvtres" command in background to convert the resource file to a COFF file
to link it.

What I'm trying to do with this patch is to make the linker to recognize
the resource file by file magic, so that it can run cvtres command.

Differential Revision: http://llvm-reviews.chandlerc.com/D1943

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192742 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoSeparating ELF and MachO stub info functions for RuntimeDyld
Andrew Kaylor [Tue, 15 Oct 2013 21:32:56 +0000 (21:32 +0000)]
Separating ELF and MachO stub info functions for RuntimeDyld

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192737 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoReformat.
Eric Christopher [Tue, 15 Oct 2013 21:22:12 +0000 (21:22 +0000)]
Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192735 91177308-0d34-0410-b5e6-96231b3b80d8

11 years ago[AArch64] Add support for NEON scalar signed saturating absolute value and
Chad Rosier [Tue, 15 Oct 2013 21:18:44 +0000 (21:18 +0000)]
[AArch64] Add support for NEON scalar signed saturating absolute value and
scalar signed saturating negate instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192733 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFixing some host==target assumptions in RuntimeDyld
Andrew Kaylor [Tue, 15 Oct 2013 20:44:55 +0000 (20:44 +0000)]
Fixing some host==target assumptions in RuntimeDyld

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192732 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoRemove some dead code. (DarwinGDBCompat was retired in r189903).
Adrian Prantl [Tue, 15 Oct 2013 20:26:37 +0000 (20:26 +0000)]
Remove some dead code. (DarwinGDBCompat was retired in r189903).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192731 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoStruct byval: fix a copy-paste error for thumb2.
Manman Ren [Tue, 15 Oct 2013 19:42:32 +0000 (19:42 +0000)]
Struct byval: fix a copy-paste error for thumb2.

PR17309

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192730 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix PR17546
Michael Liao [Tue, 15 Oct 2013 17:51:58 +0000 (17:51 +0000)]
Fix PR17546

- Type of index used in extract_vector_elt or insert_vector_elt supposes
  to be TLI.getVectorIdxTy() which is pointer type on most targets. It'd
  better to truncate (or zero-extend in case it's changed later) it to
  mask element type to guarantee they are matching instead of asserting
  that.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192722 91177308-0d34-0410-b5e6-96231b3b80d8

11 years agoFix PR16807
Michael Liao [Tue, 15 Oct 2013 17:51:02 +0000 (17:51 +0000)]
Fix PR16807

- Lower signed division by constant powers-of-2 to target-independent
  DAG operators instead of target-dependent ones to support them better
  on targets where vector types are legal but shift operators on that
  types are illegal. E.g., on AVX, PSRAW is only available on <8 x i16>
  though <16 x i16> is a legal type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192721 91177308-0d34-0410-b5e6-96231b3b80d8