oota-llvm.git
11 years agoFix formatting to match coding standards.
Craig Topper [Tue, 24 Sep 2013 06:21:04 +0000 (06:21 +0000)]
Fix formatting to match coding standards.

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

11 years agollvm/test/CodeGen/AArch64/neon-scalar-reduce-pairwise.ll: Use -mtriple here, or aach6...
NAKAMURA Takumi [Tue, 24 Sep 2013 04:14:29 +0000 (04:14 +0000)]
llvm/test/CodeGen/AArch64/neon-scalar-reduce-pairwise.ll: Use -mtriple here, or aach64-pecoff might be misassumed on win32 hosts.

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

11 years agoDWARFTypeUnit::dump(): Use PRIx64 to format uint64_t.
NAKAMURA Takumi [Tue, 24 Sep 2013 03:23:07 +0000 (03:23 +0000)]
DWARFTypeUnit::dump(): Use PRIx64 to format uint64_t.

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

11 years agoInitial support for Neon scalar instructions.
Jiangning Liu [Tue, 24 Sep 2013 02:47:27 +0000 (02:47 +0000)]
Initial support for Neon scalar instructions.

Patch by Ana Pazos.

1.Added support for v1ix and v1fx types.
2.Added Scalar Pairwise Reduce instructions.
3.Added initial implementation of Scalar Arithmetic instructions.

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

11 years ago[stackprotector] Forgot to add in PR number to test case.
Michael Gottesman [Tue, 24 Sep 2013 02:10:55 +0000 (02:10 +0000)]
[stackprotector] Forgot to add in PR number to test case.

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

11 years ago[stackprotector] Allow for copies from vreg -> vreg to be in a terminator sequence.
Michael Gottesman [Tue, 24 Sep 2013 01:50:26 +0000 (01:50 +0000)]
[stackprotector] Allow for copies from vreg -> vreg to be in a terminator sequence.

Sometimes a copy from a vreg -> vreg sneaks into the middle of a terminator
sequence. It is safe to slice this into the stack protector success bb.

This fixes PR16979.

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

11 years agoMisc fixes for cpp backend.
Eli Friedman [Tue, 24 Sep 2013 00:36:09 +0000 (00:36 +0000)]
Misc fixes for cpp backend.

PR17317.

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

11 years agoAdd namespaces to the list of items that we expose via pubnames.
Eric Christopher [Tue, 24 Sep 2013 00:17:57 +0000 (00:17 +0000)]
Add namespaces to the list of items that we expose via pubnames.

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

11 years agoRegenerate testcase from source.
Eric Christopher [Tue, 24 Sep 2013 00:17:54 +0000 (00:17 +0000)]
Regenerate testcase from source.

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

11 years agoFormat the index entry kind string to align.
Eric Christopher [Tue, 24 Sep 2013 00:17:49 +0000 (00:17 +0000)]
Format the index entry kind string to align.

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

11 years agoMake dwarfdump-type-units.test order-independent
David Blaikie [Tue, 24 Sep 2013 00:13:23 +0000 (00:13 +0000)]
Make dwarfdump-type-units.test order-independent

The order in which the comdat type unit sections appear in the output is
unspecified and may vary from machine to machine.

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

11 years agoSelecting the address from a very long chain of GEPs can blow the stack.
Bill Wendling [Tue, 24 Sep 2013 00:13:08 +0000 (00:13 +0000)]
Selecting the address from a very long chain of GEPs can blow the stack.

The recursive nature of the address selection code can cause the stack to
explode if there is a long chain of GEPs. Convert the recursive bit into a
iterative method to avoid this.

<rdar://problem/12445434>

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

11 years agoComments for r191234 as suggested by Eric Christopher.
David Blaikie [Mon, 23 Sep 2013 23:39:55 +0000 (23:39 +0000)]
Comments for r191234 as suggested by Eric Christopher.

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

11 years agoExplicitly request unsigned enum types when desired
Reid Kleckner [Mon, 23 Sep 2013 23:26:57 +0000 (23:26 +0000)]
Explicitly request unsigned enum types when desired

The underlying type of all plain enums in MSVC is 'int', even if the
enumerator contains large 32-bit unsigned values or values greater than
UINT_MAX.  The only way to get a large or unsigned enum type is to
request it explicitly with the C++11 strong enum types feature.

However, since LLVM isn't C++11 yet, I had to add a conditional
LLVM_ENUM_INT_TYPE to Compiler.h to control its usage.

The motivating true positive for this change is compiling PointerIntPair
with MSVC for win64.  The PointerIntMask value is supposed to be pointer
sized value of all ones with some low zeros.  Instead, it's truncated to
32-bits!  We are only saved later because it is sign extended back in
the AND with int64_t, and we happen to want all ones.

This silences lots of -Wmicrosoft warnings during a clang self-host
targeting Windows.

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

11 years agoAdd more external types to the pubtypes table. Expand the asm
Eric Christopher [Mon, 23 Sep 2013 23:15:58 +0000 (23:15 +0000)]
Add more external types to the pubtypes table. Expand the asm
checking patch until we get full dumping support.

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

11 years agoUnbreak the build (from r191233)since we're calling printf.
David Blaikie [Mon, 23 Sep 2013 23:15:57 +0000 (23:15 +0000)]
Unbreak the build (from r191233)since we're calling printf.

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

11 years agoRename IsStatic variable to Linkage in order to be a bit more descriptive.
Eric Christopher [Mon, 23 Sep 2013 22:59:14 +0000 (22:59 +0000)]
Rename IsStatic variable to Linkage in order to be a bit more descriptive.

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

11 years agoFormatting.
Eric Christopher [Mon, 23 Sep 2013 22:59:11 +0000 (22:59 +0000)]
Formatting.

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

11 years agollvm-dwarfdump/libDebugInfo support for type units
David Blaikie [Mon, 23 Sep 2013 22:44:47 +0000 (22:44 +0000)]
llvm-dwarfdump/libDebugInfo support for type units

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

11 years agoExract most of DWARFCompileUnit into a new DWARFUnit to prepare for the coming DWARFT...
David Blaikie [Mon, 23 Sep 2013 22:44:40 +0000 (22:44 +0000)]
Exract most of DWARFCompileUnit into a new DWARFUnit to prepare for the coming DWARFTypeUnit.

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

11 years agoMake nomips16 mask not repeat if it ends with a '.'.
Reed Kotler [Mon, 23 Sep 2013 22:36:11 +0000 (22:36 +0000)]
Make nomips16 mask not repeat if it ends with a '.'.
This mask is purely for debugging and testing.

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

11 years agoReformat code with clang-format.
Bill Wendling [Mon, 23 Sep 2013 20:57:47 +0000 (20:57 +0000)]
Reformat code with clang-format.

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

11 years agoHandle gnu pubtypes sections:
Eric Christopher [Mon, 23 Sep 2013 20:55:35 +0000 (20:55 +0000)]
Handle gnu pubtypes sections:

a) Make sure we are emitting the correct section in our section labels
when we begin the module.
b) Make sure we are emitting the correct pubtypes section in the
presence of gnu pubtypes.
c) For C++ struct, union, class, and enumeration types are default
external.

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

11 years agoAdd a paragraph on prefix data layout.
Peter Collingbourne [Mon, 23 Sep 2013 20:14:21 +0000 (20:14 +0000)]
Add a paragraph on prefix data layout.

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

11 years agoRemove remaining references to -O4.
Rafael Espindola [Mon, 23 Sep 2013 19:50:59 +0000 (19:50 +0000)]
Remove remaining references to -O4.

Thanks to Hal Finkel for noticing it.

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

11 years agofix typo: than -> then
Kay Tiong Khoo [Mon, 23 Sep 2013 18:43:51 +0000 (18:43 +0000)]
fix typo: than -> then

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

11 years agoFixed debug_aranges handling for common symbols.
Richard Mitton [Mon, 23 Sep 2013 17:56:20 +0000 (17:56 +0000)]
Fixed debug_aranges handling for common symbols.

The size of common symbols is now tracked correctly, so they can be listed in the arange section without needing knowledge of other following symbols.

.comm (and .lcomm) do not indicate to the system assembler any particular section to use, so we have to treat them as having no section.

Test case update to account for this.

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

11 years agoDebugInfo: Wrap section data and relocs together for dwarf dumping support
David Blaikie [Mon, 23 Sep 2013 17:42:01 +0000 (17:42 +0000)]
DebugInfo: Wrap section data and relocs together for dwarf dumping support

This is a small step that may enable some simplifications in producer
(DWARFContext) and consumer (DWARFCompileUnit and other places) by
making a more complete abstraction around the data and relocations for a
section. Small initial steps could include simple changes such as
passing the pair to DWARFCompileUnit's ctor rather than passing the data
and relocs separately. I don't intend to pursue any such changes
immediately, however.

The motivation for doing this now is that type unit dumping will need to
deal with these data+reloc pairs moreso than the existing dumping
support has needed to associate the data as type unit sections are named
the same (debug_types) and comdat group folded. So to implement dumping
and reloc handling we'll need a mapping of section->data+relocs.

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

11 years agoAdd sha intrinsic tests
Ben Langmuir [Mon, 23 Sep 2013 16:57:52 +0000 (16:57 +0000)]
Add sha intrinsic tests

These should have been included with r190864, but I forgot to use svn add.

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

11 years agoRevert "LoopVectorizer: Only allow vectorization of intrinsics."
Arnold Schwaighofer [Mon, 23 Sep 2013 14:54:39 +0000 (14:54 +0000)]
Revert "LoopVectorizer: Only allow vectorization of intrinsics."

Revert 191122 - with extra checks we are allowed to vectorize math library
function calls.

Standard library indentifiers are reserved names so functions with external
linkage must not overrided them. However, functions with internal linkage can.

Therefore, we can vectorize calls to math library functions with a check for
external linkage and matching signature. This matches what we do during
SelectionDAG building.

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

11 years agoExpand test case a bit.
Benjamin Kramer [Mon, 23 Sep 2013 14:41:35 +0000 (14:41 +0000)]
Expand test case a bit.

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

11 years ago[mips][msa] Added support for matching addvi, and subvi from normal IR (i.e. not...
Daniel Sanders [Mon, 23 Sep 2013 14:29:55 +0000 (14:29 +0000)]
[mips][msa] Added support for matching addvi, and subvi from normal IR (i.e. not intrinsics)

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

11 years ago[ARM] Split A/R class into separate subtarget features.
Amara Emerson [Mon, 23 Sep 2013 14:26:15 +0000 (14:26 +0000)]
[ARM] Split A/R class into separate subtarget features.

Patch by Bradley Smith.

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

11 years agoInstSimplify: Fold equality comparisons between non-inbounds GEPs.
Benjamin Kramer [Mon, 23 Sep 2013 14:16:38 +0000 (14:16 +0000)]
InstSimplify: Fold equality comparisons between non-inbounds GEPs.

Overflow doesn't affect the correctness of equalities. Computing this is cheap,
we just reuse the computation for the inbounds case and try to peel of more
non-inbounds GEPs. This pattern is unlikely to ever appear in code generated by
Clang, but SCEV occasionally produces it.

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

11 years ago[mips][msa] Added support for matching insert and copy from normal IR (i.e. not intri...
Daniel Sanders [Mon, 23 Sep 2013 14:03:12 +0000 (14:03 +0000)]
[mips][msa] Added support for matching insert and copy from normal IR (i.e. not intrinsics)

Changes to MIPS SelectionDAG:
* Added nodes VEXTRACT_[SZ]EXT_ELT to represent extract and extend in a single
  operation and implemented the DAG combines necessary to fold sign/zero
  extends into the extract.

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

11 years ago[mips][msa] Added support for matching pcnt from normal IR (i.e. not intrinsics)
Daniel Sanders [Mon, 23 Sep 2013 13:40:21 +0000 (13:40 +0000)]
[mips][msa] Added support for matching pcnt from normal IR (i.e. not intrinsics)

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

11 years ago[mips][msa] Added support for matching nor from normal IR (i.e. not intrinsics)
Daniel Sanders [Mon, 23 Sep 2013 13:22:24 +0000 (13:22 +0000)]
[mips][msa] Added support for matching nor from normal IR (i.e. not intrinsics)

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

11 years ago[mips][msa] Added support for matching and, or, and xor from normal IR (i.e. not...
Daniel Sanders [Mon, 23 Sep 2013 12:57:42 +0000 (12:57 +0000)]
[mips][msa] Added support for matching and, or, and xor from normal IR (i.e. not intrinsics)

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

11 years agoPartially revert r191192: Fix -Wunused-variable error when assertions are disabled...
Daniel Sanders [Mon, 23 Sep 2013 12:33:38 +0000 (12:33 +0000)]
Partially revert r191192: Fix -Wunused-variable error when assertions are disabled and -Werror is in use.

An unrelated change crept in because 'svn revert' isn't recursive by default.
The unrelated changes have been reverted.

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

11 years agoFix -Wunused-variable error when assertions are disabled and -Werror is in use.
Daniel Sanders [Mon, 23 Sep 2013 12:26:55 +0000 (12:26 +0000)]
Fix -Wunused-variable error when assertions are disabled and -Werror is in use.

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

11 years ago[mips][msa] Implemented build_vector using ldi, fill, and custom SelectionDAG nodes...
Daniel Sanders [Mon, 23 Sep 2013 12:02:46 +0000 (12:02 +0000)]
[mips][msa] Implemented build_vector using ldi, fill, and custom SelectionDAG nodes (VSPLAT and VSPLATD)

Note: There's a later patch on my branch that re-implements this to select
build_vector without the custom SelectionDAG nodes. The future patch avoids
the constant-folding problems stemming from the custom node (i.e. it doesn't
need to re-implement all the DAG combines related to BUILD_VECTOR).

Changes to MIPS specific SelectionDAG nodes:
* Added VSPLAT
    This is a special case of BUILD_VECTOR that covers the case the
    BUILD_VECTOR is a splat operation.
* Added VSPLATD
    This is a special case of VSPLAT that handles the cases when v2i64 is legal

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

11 years agollvm/test/tools/lto/lit.local.cfg: Add "MingW" for exclusion list.
NAKAMURA Takumi [Mon, 23 Sep 2013 09:03:48 +0000 (09:03 +0000)]
llvm/test/tools/lto/lit.local.cfg: Add "MingW" for exclusion list.

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

11 years agoAdd missing index comments to the left side of the DAG ISel matcher table for each...
Craig Topper [Sun, 22 Sep 2013 23:18:50 +0000 (23:18 +0000)]
Add missing index comments to the left side of the DAG ISel matcher table for each individual case of SwitchOpcode/Type.

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

11 years ago[Sparc] Use correct instruction pattern for CMPri.
Venkatraman Govindaraju [Sun, 22 Sep 2013 18:54:54 +0000 (18:54 +0000)]
[Sparc] Use correct instruction pattern for CMPri.

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

11 years agoRemove dead code
David Blaikie [Sun, 22 Sep 2013 18:25:32 +0000 (18:25 +0000)]
Remove dead code

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

11 years agoStringRef-ize some things
David Blaikie [Sun, 22 Sep 2013 17:01:50 +0000 (17:01 +0000)]
StringRef-ize some things

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

11 years agoProvide basic type safety for array_pod_sort comparators.
Benjamin Kramer [Sun, 22 Sep 2013 14:09:50 +0000 (14:09 +0000)]
Provide basic type safety for array_pod_sort comparators.

This makes using array_pod_sort significantly safer. The implementation relies
on function pointer casting but that should be safe as we're dealing with void*
here.

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

11 years agoDrop spurious handle in comment.
Benjamin Kramer [Sun, 22 Sep 2013 11:24:58 +0000 (11:24 +0000)]
Drop spurious handle in comment.

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

11 years ago[Sparc] Make SPARC instructions' encoding well defined such that TableGen can automat...
Venkatraman Govindaraju [Sun, 22 Sep 2013 09:54:42 +0000 (09:54 +0000)]
[Sparc] Make SPARC instructions' encoding well defined such that TableGen can automatically generate code emitter.

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

11 years ago[Sparc] Clean up MOVcc instructions so that TableGen can encode them correctly. No...
Venkatraman Govindaraju [Sun, 22 Sep 2013 09:18:26 +0000 (09:18 +0000)]
[Sparc] Clean up MOVcc instructions so that TableGen can encode them correctly. No functionality change intended.

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

11 years ago[Sparc] Clean up branch instructions, so that TableGen can encode branch conditions...
Venkatraman Govindaraju [Sun, 22 Sep 2013 08:51:55 +0000 (08:51 +0000)]
[Sparc] Clean up branch instructions, so that TableGen can encode branch conditions as well. No functionality change intended.

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

11 years agoISelDAG: spot chain cycles involving MachineNodes
Tim Northover [Sun, 22 Sep 2013 08:21:56 +0000 (08:21 +0000)]
ISelDAG: spot chain cycles involving MachineNodes

Previously, the DAGISel function WalkChainUsers was spotting that it
had entered already-selected territory by whether a node was a
MachineNode (amongst other things). Since it's fairly common practice
to insert MachineNodes during ISelLowering, this was not the correct
check.

Looking around, it seems that other nodes get their NodeId set to -1
upon selection, so this makes sure the same thing happens to all
MachineNodes and uses that characteristic to determine whether we
should stop looking for a loop during selection.

This should fix PR15840.

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

11 years ago[Sparc] Add support for TLS in sparc.
Venkatraman Govindaraju [Sun, 22 Sep 2013 06:48:52 +0000 (06:48 +0000)]
[Sparc] Add support for TLS in sparc.

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

11 years agoX86: Use R_X86_64_TPOFF64 for FK_Data_8
David Majnemer [Sun, 22 Sep 2013 05:30:16 +0000 (05:30 +0000)]
X86: Use R_X86_64_TPOFF64 for FK_Data_8

Summary:
LLVM would crash when trying to come up with a relocation type for
assembly like:
movabsq $V@TPOFF, %rax

Instead, we say the relocation type is R_X86_64_TPOFF64.

Fixes PR17274.

Reviewers: dblaikie, nrieck, rafael

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

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

11 years ago[SPARC] Make functions with GLOBAL_OFFSET_TABLE access as non-leaf functions.
Venkatraman Govindaraju [Sun, 22 Sep 2013 01:40:24 +0000 (01:40 +0000)]
[SPARC] Make functions with GLOBAL_OFFSET_TABLE access as non-leaf functions.

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

11 years ago[Sparc] Emit .register directive to declare the use of global registers %g2, %g4...
Venkatraman Govindaraju [Sun, 22 Sep 2013 00:42:30 +0000 (00:42 +0000)]
[Sparc] Emit .register directive to declare the use of global registers %g2, %g4, %g6 and %g7.

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

11 years agoCorrect the pre-increment load latencies in the PPC A2 itinerary
Hal Finkel [Sun, 22 Sep 2013 00:08:14 +0000 (00:08 +0000)]
Correct the pre-increment load latencies in the PPC A2 itinerary

Pre-increment loads are microcoded on the A2, and the address increment occurs
only after the load completes. As a result, the latency of the GPR address
update is an additional 2 cycles on top of the load latency.

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

11 years ago[Sparc] Fix lowering FABS on fp128 (long double) on pre-v9 targets.
Venkatraman Govindaraju [Sat, 21 Sep 2013 23:51:08 +0000 (23:51 +0000)]
[Sparc] Fix lowering FABS on fp128 (long double) on pre-v9 targets.

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

11 years agoSROA: Handle casts involving vectors of pointers and integer scalars.
Benjamin Kramer [Sat, 21 Sep 2013 20:36:04 +0000 (20:36 +0000)]
SROA: Handle casts involving vectors of pointers and integer scalars.

SROA wants to convert any types of equivalent widths but it's not possible to
convert vectors of pointers to an integer scalar with a single cast. As a
workaround we add a bitcast to the corresponding int ptr type first. This type
of cast used to be an edge case but has become common with SLP vectorization.
Fixes PR17271.

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

11 years agoRevert "SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting...
Juergen Ributzka [Sat, 21 Sep 2013 15:09:46 +0000 (15:09 +0000)]
Revert "SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too."

This reverts commit r191130.

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

11 years agoRemove alignment restrictions from FMA load folding.
Craig Topper [Sat, 21 Sep 2013 05:58:59 +0000 (05:58 +0000)]
Remove alignment restrictions from FMA load folding.

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

11 years agoSLPVectorizer: Fix multiline comment warning
Arnold Schwaighofer [Sat, 21 Sep 2013 05:37:30 +0000 (05:37 +0000)]
SLPVectorizer: Fix multiline comment warning

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

11 years agoELF: Parse types in directives like binutils gas
David Majnemer [Sat, 21 Sep 2013 05:25:12 +0000 (05:25 +0000)]
ELF: Parse types in directives like binutils gas

Allow binutils .type and .section directives to take the following
forms:
- @<type>
- %<type>
- "<type>"

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

11 years agoFix the buildbot
Juergen Ributzka [Sat, 21 Sep 2013 05:15:01 +0000 (05:15 +0000)]
Fix the buildbot

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

11 years ago[X86] Emulate AVX 256bit MIN/MAX support by splitting the vector.
Juergen Ributzka [Sat, 21 Sep 2013 04:55:22 +0000 (04:55 +0000)]
[X86] Emulate AVX 256bit MIN/MAX support by splitting the vector.

In AVX 256bit vectors are valid vectors and therefore the Type Legalizer doesn't
split the VSELECT and SETCC nodes. AVX only supports MIN/MAX on 128bit vectors
and this fix enables vector splitting for this special case in the X86 DAG
Combiner.

This fix is related to PR16695, PR17002, and <rdar://problem/14594431>.

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

11 years agoSelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too.
Juergen Ributzka [Sat, 21 Sep 2013 04:55:18 +0000 (04:55 +0000)]
SelectionDAG: Teach the legalizer to split SETCC if VSELECT needs splitting too.

The Type Legalizer recognizes that VSELECT needs to be split, because the type
is to wide for the given target. The same does not always apply to SETCC,
because less space is required to encode the result of a comparison. As a result
VSELECT is split and SETCC is unrolled into scalar comparisons.

This commit fixes the issue by checking for VSELECT-SETCC patterns in the DAG
Combiner. If a matching pattern is found, then the result mask of SETCC is
promoted to the expected vector mask for the given target. This mask has usually
te same size as the VSELECT return type (except for Intel KNL). Now the type
legalizer will split both VSELECT and SETCC.

This allows the following X86 DAG Combine code to sucessfully detect the MIN/MAX
pattern. This fixes PR16695, PR17002, and <rdar://problem/14594431>.

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

11 years agoInitialize BSSSection explicitly in InitMachOMCObjectFileInfo() to appease msvc.
NAKAMURA Takumi [Sat, 21 Sep 2013 02:34:45 +0000 (02:34 +0000)]
Initialize BSSSection explicitly in InitMachOMCObjectFileInfo() to appease msvc.

This can revert r191087.

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

11 years agoSet .reorder for the stub so that gas takes care of delay slot processing.
Reed Kotler [Sat, 21 Sep 2013 01:37:52 +0000 (01:37 +0000)]
Set .reorder for the stub so that gas takes care of delay slot processing.

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

11 years agoReapply "SLPVectorizer: Handle more horizontal reductions (disabled)""
Arnold Schwaighofer [Sat, 21 Sep 2013 01:06:00 +0000 (01:06 +0000)]
Reapply "SLPVectorizer: Handle more horizontal reductions (disabled)""

Reapply r191108 with a fix for a memory corruption error I introduced.  Of
course, we can't reference the scalars that we replace by vectorizing and then
call their eraseFromParent method. I only 'needed' the scalars to get the
DebugLoc. Just store the DebugLoc before actually vectorizing instead. As a nice
side effect, this also simplifies the interface between BoUpSLP and the
HorizontalReduction class to returning a value pointer (the vectorized tree
root).

radar://14607682

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

11 years agoLoopVectorizer: Only allow vectorization of intrinsics. We can't know for sure that...
Nadav Rotem [Sat, 21 Sep 2013 00:27:05 +0000 (00:27 +0000)]
LoopVectorizer: Only allow vectorization of intrinsics. We can't know for sure that the functions 'abs' or 'round' are the functions from libm.

rdar://15012650

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

11 years agoRevert "SLPVectorizer: Handle more horizontal reductions (disabled)"
Arnold Schwaighofer [Sat, 21 Sep 2013 00:06:20 +0000 (00:06 +0000)]
Revert "SLPVectorizer: Handle more horizontal reductions (disabled)"

This reverts commit r191108.

The horizontal.ll test case fails under libgmalloc. Thanks Shuxin for pointing
this out to me.

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

11 years agoMove emission of the debug string table to early in the debug
Eric Christopher [Fri, 20 Sep 2013 23:22:52 +0000 (23:22 +0000)]
Move emission of the debug string table to early in the debug
info finalization to greatly reduce the number of fixups that the
assembler has to handle in order to improve compile time.

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

11 years agoResurrect r191017 " GVN proceeds in the presence of dead code" plus a fix to PR17307...
Shuxin Yang [Fri, 20 Sep 2013 23:12:57 +0000 (23:12 +0000)]
Resurrect r191017 " GVN proceeds in the presence of dead code" plus a fix to PR17307 & 17308.

  The problem of r191017 is that when GVN fabricate a val-number for a dead instruction (in order
to make following expr-PRE happy), it forget to fabricate a leader-table entry for it as well.

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

11 years agoMC: Tidy up.
Jim Grosbach [Fri, 20 Sep 2013 23:08:21 +0000 (23:08 +0000)]
MC: Tidy up.

Clean up some simple code quality issues. Bring internal naming
conventions up to current standard, fix inconsistent formatting, and
tidy up a couple of odd contructs.

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

11 years agoMigrate addGlobalName to the .cpp file as an intermediate step
Eric Christopher [Fri, 20 Sep 2013 22:20:55 +0000 (22:20 +0000)]
Migrate addGlobalName to the .cpp file as an intermediate step
to further work.

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

11 years agoInstCombine: Remove unused argument. No functionality change.
Benjamin Kramer [Fri, 20 Sep 2013 22:12:42 +0000 (22:12 +0000)]
InstCombine: Remove unused argument. No functionality change.

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

11 years agoFix some more MCJIT PIC test XFAILs (for i386)
Andrew Kaylor [Fri, 20 Sep 2013 22:12:03 +0000 (22:12 +0000)]
Fix some more MCJIT PIC test XFAILs (for i386)

Patch by Dimitry Andric

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

11 years ago[mips] MUL should clobber HI0 and LO0.
Akira Hatanaka [Fri, 20 Sep 2013 21:22:28 +0000 (21:22 +0000)]
[mips] MUL should clobber HI0 and LO0.

I cannot think of a test case that reliably triggers this bug.

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

11 years agoSLPVectorizer: Handle more horizontal reductions (disabled)
Arnold Schwaighofer [Fri, 20 Sep 2013 21:18:20 +0000 (21:18 +0000)]
SLPVectorizer: Handle more horizontal reductions (disabled)

Match reductions starting at binary operation feeding into a phi. The code
handles trees like

 r += v1 + v2 + v3 ...

and

 r += v1
 r += v2
 ...

and

 r *= v1 + v2 + ...

We currently only handle associative operations (add, fadd fast).

The code can now also handle reductions feeding into stores.

 a[i] = v1 + v2 + v3 + ...

The code is currently disabled behind the flag "-slp-vectorize-hor".  The cost
model for most architectures is not there yet.

I found one opportunity of a horizontal reduction feeding a phi in TSVC
(LoopRerolling-flt) and there are several opportunities where reductions feed
into stores.

radar://14607682

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

11 years agoDelete empty files.
Joerg Sonnenberger [Fri, 20 Sep 2013 20:40:22 +0000 (20:40 +0000)]
Delete empty files.

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

11 years agoRevert r191017, it results in segmentation faults in Qt.
Joerg Sonnenberger [Fri, 20 Sep 2013 20:33:57 +0000 (20:33 +0000)]
Revert r191017, it results in segmentation faults in Qt.

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

11 years agoFixed typo in CreateProcessTrailingSlash test
Tareq A. Siraj [Fri, 20 Sep 2013 18:21:59 +0000 (18:21 +0000)]
Fixed typo in CreateProcessTrailingSlash test

--gtest_filter was filtering an invalid name for the test.

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

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

11 years agoInstCombine: Canonicalize (gep i8* X, -(ptrtoint Y)) to (sub (ptrtoint X), (ptrtoint Y))
Benjamin Kramer [Fri, 20 Sep 2013 14:38:44 +0000 (14:38 +0000)]
InstCombine: Canonicalize (gep i8* X, -(ptrtoint Y)) to (sub (ptrtoint X), (ptrtoint Y))

The GEP pattern is what SCEV expander emits for "ugly geps". The latter is what
you get for pointer subtraction in C code. The rest of instcombine already
knows how to deal with that so just canonicalize on that.

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

11 years agollvm/tools/Makefile: Suppress building llvm-lto on cygming, for now, probably due...
NAKAMURA Takumi [Fri, 20 Sep 2013 13:12:24 +0000 (13:12 +0000)]
llvm/tools/Makefile: Suppress building llvm-lto on cygming, for now, probably due to LTO.dll.

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

11 years agollvm/test: Mark 3 tests as XFAIL:msvc.
NAKAMURA Takumi [Fri, 20 Sep 2013 12:57:34 +0000 (12:57 +0000)]
llvm/test: Mark 3 tests as XFAIL:msvc.

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

11 years agotest/tools/lto/lit.local.cfg: Suppress llvm-lto test on Cygwin and Win32, for now.
NAKAMURA Takumi [Fri, 20 Sep 2013 12:57:25 +0000 (12:57 +0000)]
test/tools/lto/lit.local.cfg: Suppress llvm-lto test on Cygwin and Win32, for now.

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

11 years agoMove x86-dependent tests into the right directory.
Benjamin Kramer [Fri, 20 Sep 2013 10:56:40 +0000 (10:56 +0000)]
Move x86-dependent tests into the right directory.

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

11 years agoRevert "llvm-c: Add LLVMGetPointerToFunction"
Anders Waldenborg [Fri, 20 Sep 2013 07:00:36 +0000 (07:00 +0000)]
Revert "llvm-c: Add LLVMGetPointerToFunction"

This reverts r191030

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

11 years agoLift alignment restrictions on load/store folding of VEXTRACTI128/VINSERTI128.
Craig Topper [Fri, 20 Sep 2013 05:37:49 +0000 (05:37 +0000)]
Lift alignment restrictions on load/store folding of VEXTRACTI128/VINSERTI128.

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

11 years agoAllow subtarget selection of the default MachineScheduler and document the interface.
Andrew Trick [Fri, 20 Sep 2013 05:14:41 +0000 (05:14 +0000)]
Allow subtarget selection of the default MachineScheduler and document the interface.

The global registry is used to allow command line override of the
scheduler selection, but does not work well as the normal selection
API. For example, the same LLVM process should be able to target
multiple targets or subtargets.

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

11 years agoRevert r191062; the build break was also fixed in a different (incompatible) way...
Richard Smith [Fri, 20 Sep 2013 01:24:10 +0000 (01:24 +0000)]
Revert r191062; the build break was also fixed in a different (incompatible) way in r191060.

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

11 years agoUnbreak Clang build after r191050: don't pass a StringRef to snprintf.
Richard Smith [Fri, 20 Sep 2013 00:38:18 +0000 (00:38 +0000)]
Unbreak Clang build after r191050: don't pass a StringRef to snprintf.

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

11 years agoDebugInfo: GDBIndexEntry*String conversion functions now return const char* for easy...
David Blaikie [Fri, 20 Sep 2013 00:33:15 +0000 (00:33 +0000)]
DebugInfo: GDBIndexEntry*String conversion functions now return const char* for easy llvm::formating

This was previously invoking UB by passing a user-defined type to
format. Thanks to Jordan Rose for pointing this out.

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

11 years agoAdd braces to suppress Clang's dangling-else warning.
David Blaikie [Fri, 20 Sep 2013 00:33:11 +0000 (00:33 +0000)]
Add braces to suppress Clang's dangling-else warning.

These violations were introduced in r191049

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

11 years agoDebugInfo: constrain gnu pubnames test further
David Blaikie [Thu, 19 Sep 2013 23:43:46 +0000 (23:43 +0000)]
DebugInfo: constrain gnu pubnames test further

Ensures that the pubnames entries actually refer to the intended
entities. This test could be more flexible if there was a way to do
multiline FileCheck matches with captures (in that way the test wouldn't
need to have hardcoded offset values and would thus be resilient to
changes in the layout of the DIEs in this CU).

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

11 years agoFixed warning
Richard Mitton [Thu, 19 Sep 2013 23:21:07 +0000 (23:21 +0000)]
Fixed warning

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

11 years agoAdded support for generate DWARF .debug_aranges sections automatically.
Richard Mitton [Thu, 19 Sep 2013 23:21:01 +0000 (23:21 +0000)]
Added support for generate DWARF .debug_aranges sections automatically.

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

11 years agoRename ConvergingScheduler to GenericScheduler.
Andrew Trick [Thu, 19 Sep 2013 23:10:59 +0000 (23:10 +0000)]
Rename ConvergingScheduler to GenericScheduler.

This was an experimental scheduler a year ago. It's now used by
several subtargets, both in-order and out-of-order, and it
is about to be enabled by default for x86 and armv7. It will be the
new GenericScheduler for subtargets that don't provide their own
SchedulingStrategy.

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

11 years agoDebugInfo: llvm-dwarfdump support for gnu_pubnames section
David Blaikie [Thu, 19 Sep 2013 23:01:29 +0000 (23:01 +0000)]
DebugInfo: llvm-dwarfdump support for gnu_pubnames section

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

11 years agoPR16726: extend rol/ror matching
Kai Nacke [Thu, 19 Sep 2013 23:00:28 +0000 (23:00 +0000)]
PR16726: extend rol/ror matching

C-like languages promote types like unsigned short to unsigned int before
performing an arithmetic operation. Currently the rotate matcher in the
DAGCombiner does not consider this situation.

This commit extends the DAGCombiner in the way that the pattern

(or (shl ([az]ext x), (*ext y)), (srl ([az]ext x), (*ext (sub 32, y))))

is folded into

([az]ext (rotl x, y))

The matching is restricted to aext and zext because in this cases the upper
bits are either undefined or known. Test case is included.

This fixes PR16726.

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