Juergen Ributzka [Wed, 30 Oct 2013 05:48:18 +0000 (05:48 +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 type for the given target. This mask has
usually the 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>.
Reviewed by Nadav
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193676
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 30 Oct 2013 04:03:03 +0000 (04:03 +0000)]
Reformat Makefile. No other changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193675
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 30 Oct 2013 02:29:43 +0000 (02:29 +0000)]
[mips] Compute stack alignment on the fly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193673
91177308-0d34-0410-b5e6-
96231b3b80d8
Josh Magee [Wed, 30 Oct 2013 02:25:14 +0000 (02:25 +0000)]
Reformat code with clang-format.
Differential Revision: http://llvm-reviews.chandlerc.com/D2057
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193672
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 30 Oct 2013 00:49:39 +0000 (00:49 +0000)]
StackProtector.h: Fix trailing comments for doxygen. [-Wdocumentation]
s!//<!///<!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193669
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 30 Oct 2013 00:49:33 +0000 (00:49 +0000)]
Trailing whitespace in a comment line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193668
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 23:14:15 +0000 (23:14 +0000)]
Debug Info: code clean up.
Use EmitLabelOffsetDifference for handling on darwin platform when
non-darwin platforms use EmitLabelPlusOffset.
Also fix a bug in EmitLabelOffsetDifference where the size is hard-coded
to 4 even though Size is passed in as an argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193660
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 22:57:10 +0000 (22:57 +0000)]
Debug Info: support for DW_FORM_ref_addr.
To support ref_addr, we calculate the section offset of a DIE (i.e. offset
of a DIE from beginning of the debug info section). The Offset field in DIE
is currently CU-relative. To calculate the section offset, we add a
DebugInfoOffset field in CompileUnit to store the offset of a CU from beginning
of the debug info section. We set the value in DwarfUnits::computeSizeAndOffset
for each CompileUnit.
A helper function DIE::getCompileUnit is added to return the CU DIE that
the input DIE belongs to. We also add a map CUDieMap in DwarfDebug to help
finding the CU for a given CU DIE.
For a cross-referenced DIE, we first find the CU DIE it belongs to with
getCompileUnit, then we use CUDieMap to get the corresponding CU for the CU DIE.
Adding the section offset of the CU with the CU-relative offset of a DIE gives
us the seciton offset of the DIE.
We correctly emit ref_addr with relocation using EmitLabelPlusOffset when
doesDwarfUseRelocationsAcrossSections is true.
This commit handles the emission of DW_FORM_ref_addr when we have an attribute
with FORM_ref_addr. A follow-on patch will start using ref_addr when adding a
DIEEntry. This commit will be tested and verified in the follow-on patch.
Reviewed off-list by Eric, Thanks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193658
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 22:49:29 +0000 (22:49 +0000)]
Debug Info: instead of calling addToContextOwner which constructs the context
after the DIE creation, we construct the context first.
Ensure that we create the context before we create a type so that we can add
the newly created type to the parent. Remove last use of addToContextOwner
now that it's not needed.
We use createAndAddDIE to wrap around "new DIE(". Now all shareable DIEs
should be added to their parents right after the creation.
Reviewed off-list by Eric, Thanks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193657
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 22:27:32 +0000 (22:27 +0000)]
Struct byval cleanup: add helper functions to reduce code duplication.
Helper functions are added:
emitPostLd: emit a post-increment load operation with given size.
emitPostSt: emit a post-increment store operation with given size.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193656
91177308-0d34-0410-b5e6-
96231b3b80d8
Josh Magee [Tue, 29 Oct 2013 21:16:16 +0000 (21:16 +0000)]
[stackprotector] Update the StackProtector pass to perform datalayout analysis.
This modifies the pass to classify every SSP-triggering AllocaInst according to
an SSPLayoutKind (LargeArray, SmallArray, AddrOf). This analysis is collected
by the pass and made available for use, but no other pass uses it yet.
The next patch will make use of this analysis in PEI and StackSlot
passes. The end goal is to support ssp-strong stack layout rules.
WIP.
Differential Revision: http://llvm-reviews.chandlerc.com/D1789
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193653
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Oct 2013 21:04:19 +0000 (21:04 +0000)]
Update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193651
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 29 Oct 2013 20:59:29 +0000 (20:59 +0000)]
Workaround MSVC 32-bit miscompile of getCondCodeAction.
Use 32-bit types for the array instead of 64. This should
generally be better anyway.
In optimized + assert builds, I saw a failure when a
cond code / type combination that is never set was loading
a non-zero value and hitting the != Promote assert.
It turns out when loading the 64-bit value to do the shift,
the assembly loads the 2 32-bit halves from non-consecutive
addresses. The address the second half of the loaded uint64_t
doesn't include the offset of the array in the struct. Instead
of being offset + 4, it's just + 4.
I'm not entirely sure why this wasn't observed before.
setCondCodeAction isn't heavily used by the in-tree targets,
and not with the higher valued vector SimpleValueTypes. Only
PPC is using one of the > 32 valued types, and that is probably
never used by anyone on a 32-bit MSVC compiled host.
I ran into this when upgrading LLVM versions, so I guess the
value loaded from the nonsense address happened to work out
before.
No test since I'm not really sure if / how it can be reproduced
with the current in tree targets, and it's not supposed to change
anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193650
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 29 Oct 2013 20:40:52 +0000 (20:40 +0000)]
Removing a switch statement that contains only a default label. This resolves an MSVC warning. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193649
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 29 Oct 2013 19:29:03 +0000 (19:29 +0000)]
[mips] Align the stack to 16-bytes for mfp64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193641
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 18:31:14 +0000 (18:31 +0000)]
Remove declared but not implemented function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193637
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 29 Oct 2013 17:53:27 +0000 (17:53 +0000)]
Fix common typos in the docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193632
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 17:28:26 +0000 (17:28 +0000)]
Move getSymbol to TargetLoweringObjectFile.
This allows constructing a Mangler with just a TargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193630
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 17:27:14 +0000 (17:27 +0000)]
Debug Info: clean up testing case.
Add a tag before the name attribute for readability. Use CHECK-NEXT
instead of CHECK-NOT followed by a CHECK. Add new lines to separate checking
of different DIEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193629
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 17:07:16 +0000 (17:07 +0000)]
Add a helper getSymbol to AsmPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193627
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Tue, 29 Oct 2013 17:01:29 +0000 (17:01 +0000)]
add test cases for frameaddr and returnaddr for aarch64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193626
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Tue, 29 Oct 2013 17:00:25 +0000 (17:00 +0000)]
[AArch64] Implement FrameAddr and ReturnAddr
Fixes PR17690
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193625
91177308-0d34-0410-b5e6-
96231b3b80d8
Amara Emerson [Tue, 29 Oct 2013 16:54:52 +0000 (16:54 +0000)]
[ARM] Make sure HasCRC is initialized to false in Subtarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193624
91177308-0d34-0410-b5e6-
96231b3b80d8
Zoran Jovanovic [Tue, 29 Oct 2013 16:38:59 +0000 (16:38 +0000)]
Support for microMIPS jump instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193623
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 29 Oct 2013 16:37:28 +0000 (16:37 +0000)]
R600/SI: Add compute support for CI v2
v2:
- Fix LDS size calculation
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193621
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 29 Oct 2013 16:37:20 +0000 (16:37 +0000)]
R600: Expand vector FSQRT ops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193620
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Tue, 29 Oct 2013 16:32:19 +0000 (16:32 +0000)]
DWARF parser: propery handle DW_FORM_ref_sig8 and fix Windows build.
Based on D2050 by Timur Iskhodzhanov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193619
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 16:24:21 +0000 (16:24 +0000)]
The asm printer has a mangler. Use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193618
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 16:18:15 +0000 (16:18 +0000)]
The AsmPrinter has a Mangler. Use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193617
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 16:11:22 +0000 (16:11 +0000)]
The asm printer has a mangler. Don't keep a second pointer to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193616
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 14:25:43 +0000 (14:25 +0000)]
Support names like llvm-ar-3.4 and llvm-ranlib-3.4.
They are used in some packages. For example:
http://packages.ubuntu.com/saucy/i386/llvm-3.4/filelist
This fixes pr17721.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193612
91177308-0d34-0410-b5e6-
96231b3b80d8
Bernard Ogden [Tue, 29 Oct 2013 14:16:09 +0000 (14:16 +0000)]
Test cleanup for v8 instructions
Add some missing tests, factor out a test not specific to v8 into
its own file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193611
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 29 Oct 2013 13:44:11 +0000 (13:44 +0000)]
Clarify that GlobalVariables definitions must have an initializer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193609
91177308-0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Tue, 29 Oct 2013 12:13:22 +0000 (12:13 +0000)]
Quick-fix DebugInfo build on Windows
MSVC can't comprehend
template<typename T, size_t N>
ArrayRef<T> makeArrayRef(const T (&Arr)[N]) {
return ArrayRef<T>(Arr);
}
if Arr is
static const uint8_t sizes[];
declared in a templated and defined a few lines later.
I'll send a proper fix (i.e. get rid of unnecessary templates) for review soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193604
91177308-0d34-0410-b5e6-
96231b3b80d8
Bernard Ogden [Tue, 29 Oct 2013 09:47:35 +0000 (09:47 +0000)]
ARM: Add subtarget feature for CRC
Adds a subtarget feature for the CRC instructions (optional in v8-A) to the ARM (32-bit) backend.
Differential Revision: http://llvm-reviews.chandlerc.com/D2036
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193599
91177308-0d34-0410-b5e6-
96231b3b80d8
Anders Waldenborg [Tue, 29 Oct 2013 09:37:28 +0000 (09:37 +0000)]
Fix misapplied patch in r193597
Sorry Peter Zotov, entirely my fault.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193598
91177308-0d34-0410-b5e6-
96231b3b80d8
Anders Waldenborg [Tue, 29 Oct 2013 09:02:02 +0000 (09:02 +0000)]
llvm-c: Make LLVM{Get,Set}Alignment work on {Load,Store}Inst too
Patch by Peter Zotov
Differential Revision: http://llvm-reviews.chandlerc.com/D1910
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193597
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 29 Oct 2013 08:22:33 +0000 (08:22 +0000)]
AArch64: add 'a' inline asm operand modifier
This is used in the Linux kernel, and effectively just means "print an
address".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193593
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 05:49:41 +0000 (05:49 +0000)]
Debug Info: instead of calling addToContextOwner which constructs the context
after the DIE creation, we construct the context first.
This touches creation of namespaces and global variables. The purpose is to
handle all DIE creations similarly: constructs the context first, then creates
the DIE and immediately adds the DIE to its parent.
We use createAndAddDIE to wrap around "new DIE(".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193589
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 29 Oct 2013 02:46:00 +0000 (02:46 +0000)]
Add llvm/test/Transforms/SLPVectorizer/ARM/lit.local.cfg. Tests there require ARM in targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193580
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Tue, 29 Oct 2013 02:35:28 +0000 (02:35 +0000)]
Fix "existant" typos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193579
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 29 Oct 2013 01:44:23 +0000 (01:44 +0000)]
Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193576
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 29 Oct 2013 01:43:05 +0000 (01:43 +0000)]
DWARFFormValue.cpp: Appease gcc to give explicit constructors.
error: conversion from `const uint8_t*' to non-scalar type `llvm::ArrayRef<unsigned char>' requested
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193575
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:57 +0000 (01:33 +0000)]
ARM cost model: Unaligned vectorized double stores are expensive
Updated a test case that assumed that <2 x double> would vectorize to use
<4 x float>.
radar://
15338229
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193574
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:53 +0000 (01:33 +0000)]
ARM cost model: Account for zero cost scalar SROA instructions
By vectorizing a series of srl, or, ... instructions we have obfuscated the
intention so much that the backend does not know how to fold this code away.
radar://
15336950
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193573
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 29 Oct 2013 01:33:50 +0000 (01:33 +0000)]
SLPVectorizer: Use vector type for vectorized memory operations
No test case, because with the current cost model we don't see a difference.
An upcoming ARM memory cost model change will expose and test this bug.
radar://
15332579
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193572
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Tue, 29 Oct 2013 01:33:14 +0000 (01:33 +0000)]
Cleaning up comments in lli
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193571
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Tue, 29 Oct 2013 01:29:56 +0000 (01:29 +0000)]
Adding a workaround for __main linking with remote lli and Cygwin/MinGW
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193570
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Tue, 29 Oct 2013 01:06:17 +0000 (01:06 +0000)]
Move the STT_FILE symbols out of the normal symbol table processing for
ELF. They can overlap with the other symbols, e.g. if a source file
"foo.c" contains a function "foo" with a static variable "c".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193569
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 01:03:01 +0000 (01:03 +0000)]
Debug Info: use createAndAddDIE to wrap around "new DIE" in DwarfDebug.
This commit ensures DIEs are constructed within a compile unit and
immediately added to their parents.
Reviewed off-list by Eric.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193568
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 00:58:04 +0000 (00:58 +0000)]
Debug Info: use createAndAddDIE for newly-created Subprogram DIEs.
More patches will be submitted to convert "new DIE(" to use createAddAndDIE in
DwarfCompileUnit.cpp. This will simplify implementation of addDIEEntry where
we have to decide between ref4 and ref_addr, because DIEs that can be shared
across CU will be added to a CU already.
Reviewed off-list by Eric.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193567
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 29 Oct 2013 00:53:03 +0000 (00:53 +0000)]
Debug Info: add a helper function createAndAddDIE.
It wraps around "new DIE(" and handles the bookkeeping part of the newly-created
DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes
sure that bookkeeping is done at the earliest time and we should not see
parentless DIEs if all constructions of DIEs go through this helper function.
Later on, we can use an allocator for DIE allocation, and will only need to
change createAndAddDIE instead of modifying all the "new DIE(".
Reviewed off-list by Eric.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193566
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 28 Oct 2013 23:58:58 +0000 (23:58 +0000)]
Merge DWARFDIE::extractFast and DWARFDIE::extract into one function.
Complicated CU-DIE-specific logic in the latter was never used,
and it makes sense to have safety checks for broken dwarf in the former.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193563
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Mon, 28 Oct 2013 23:51:03 +0000 (23:51 +0000)]
Renaming MCJIT .ir files to .ll and moving them to Inputs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193562
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 28 Oct 2013 23:41:49 +0000 (23:41 +0000)]
DWARF parser: Use ArrayRef to represent form sizes and simplify DWARFDIE::extractFast() interface. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193560
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Mon, 28 Oct 2013 23:37:49 +0000 (23:37 +0000)]
lit: add missing substitutions for recently added tools
llvm-mcmarkup, obj2yaml and yaml2obj were missing from the substitutions list,
causing the test suite to fail in a sandboxed environment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193559
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Mon, 28 Oct 2013 23:37:45 +0000 (23:37 +0000)]
Quote potential shell expansions found in tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193558
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 28 Oct 2013 23:15:15 +0000 (23:15 +0000)]
DWARF parser: since DWARF4, DW_AT_high_pc may be a constant representing function size
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193555
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Mon, 28 Oct 2013 23:01:48 +0000 (23:01 +0000)]
DebugInfo: Introduce the notion of "form classes"
Summary:
Use DWARF4 table of form classes to fetch attributes from DIE
in a more consistent way. This shouldn't change the functionality and
serves as a refactoring for upcoming change: DW_AT_high_pc has different
semantics depending on its form class.
Reviewers: dblaikie, echristo
Reviewed By: echristo
CC: echristo, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1961
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193553
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Mon, 28 Oct 2013 22:51:25 +0000 (22:51 +0000)]
Fix the lli --extra-module value_desc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193552
91177308-0d34-0410-b5e6-
96231b3b80d8
Rui Ueyama [Mon, 28 Oct 2013 22:42:54 +0000 (22:42 +0000)]
Add a few tests for StringRef::{start,end}with.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193550
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 22:17:19 +0000 (22:17 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193548
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 22:11:47 +0000 (22:11 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193547
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 22:05:05 +0000 (22:05 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193546
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Mon, 28 Oct 2013 21:58:15 +0000 (21:58 +0000)]
Standardizing lli's extra module command line option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193544
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 28 Oct 2013 21:43:54 +0000 (21:43 +0000)]
Remove stray '_'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193543
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 28 Oct 2013 21:43:11 +0000 (21:43 +0000)]
Use the correct reference. Spotted by Sean Silva.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193542
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 28 Oct 2013 21:22:23 +0000 (21:22 +0000)]
Remove 2.4 from the list of supported Python versions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193541
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 28 Oct 2013 21:21:36 +0000 (21:21 +0000)]
[mips] Simplify LowerFormalArguments using getRegClassFor.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193540
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 21:12:15 +0000 (21:12 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193539
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 21:06:12 +0000 (21:06 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193538
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 20:59:41 +0000 (20:59 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193537
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 20:54:33 +0000 (20:54 +0000)]
Convert another llc -filetype=obj test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193536
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 28 Oct 2013 20:51:11 +0000 (20:51 +0000)]
Return early from getUnconditionalBranchTargetOpValue if the branch target is
an MCExpr, in order to avoid writing an encoded zero value in the immediate
field.
When getUnconditionalBranchTargetOpValue is called with an MCExpr target, we
don't know what the final immediate field value should be. We shouldn't
explicitly set the immediate field to an encoded zero value as zero is encoded
with a non-zero bit pattern. This leads to bits being set that pollute the
final immediate value. The nature of the encoding is such that the polluted
bits only affect very large immediate values, explaining why this hasn't
caused problems earlier.
Fixes <rdar://problem/
15155975>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193535
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 28 Oct 2013 20:40:20 +0000 (20:40 +0000)]
Convert a llc -filetype=obj test into a llvm-mc test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193534
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Mon, 28 Oct 2013 18:19:04 +0000 (18:19 +0000)]
TableGen: remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193527
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Mon, 28 Oct 2013 18:07:21 +0000 (18:07 +0000)]
TableGen: Refactor DAG patterns to enable parsing one pattern at a time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193526
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Mon, 28 Oct 2013 18:07:17 +0000 (18:07 +0000)]
TableGen: Refactor AsmWriterEmitter to keep AsmWriterInsts.
These used to be referenced by the CGI->AWI map (in AsmWriterEmitter), but
stored in a vector local to EmitPrintInstruction. Move the vector to
AsmWriterEmitter too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193525
91177308-0d34-0410-b5e6-
96231b3b80d8
Logan Chien [Mon, 28 Oct 2013 17:51:12 +0000 (17:51 +0000)]
[arm] Implement eabi_attribute, cpu, and fpu directives.
This commit allows the ARM integrated assembler to parse
and assemble the code with .eabi_attribute, .cpu, and
.fpu directives.
To implement the feature, this commit moves the code from
AttrEmitter to ARMTargetStreamers, and several new test
cases related to cortex-m4, cortex-r5, and cortex-a15 are
added.
Besides, this commit also change the Subtarget->isFPOnlySP()
to Subtarget->hasD16() to match the usage of .fpu directive.
This commit changes the test cases:
* Several .eabi_attribute directives in
2010-09-29-mc-asm-header-test.ll are removed because the .fpu
directive already cover the functionality.
* In the Cortex-A15 test case, the value for
Tag_Advanced_SIMD_arch has be changed from 1 to 2,
which is more precise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193524
91177308-0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Mon, 28 Oct 2013 16:52:38 +0000 (16:52 +0000)]
simplify ConstantRange::getSetSize()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193523
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 28 Oct 2013 13:53:37 +0000 (13:53 +0000)]
[SystemZ] Set usaAA to true
useAA significantly improves the handling of vector code that has TBAA
information attached. It also helps other cases, as shown by the testsuite
changes here. The only real downside I've seen is that it interferes with
MergeConsecutiveStores. The problem is that that optimization works top
down, starting at the first store in the chain, and looks for cases where
the chain result is only used by a single related store. These related
stores don't alias, so useAA will have rewritten all the later stores to
use a different chain input (typically the same one as the first store).
I think the advantages outweigh the disadvantages though, so for now I've
just disabled alias analysis for the unaligned-01.ll test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193521
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 28 Oct 2013 12:00:00 +0000 (12:00 +0000)]
[DAGCombiner] Respect volatility when checking for aliases
Making useAA() default to true for SystemZ showed that the combiner alias
analysis wasn't handling volatile accesses. This hit many of the SystemZ
tests, but I arbitrarily picked one for the purpose of this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193518
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Mon, 28 Oct 2013 11:17:59 +0000 (11:17 +0000)]
Keep TBAA info when rewriting SelectionDAG loads and stores
Most SelectionDAG code drops the TBAA info when creating a new form of a
load and store (e.g. during legalization, or when converting a plain
load to an extending one). This patch tries to catch all cases where
the TBAA information can legitimately be carried over.
The patch adds alternative forms of getLoad() and getExtLoad() that take
a MachineMemOperand instead of individual fields. (The corresponding
getTruncStore() already exists.) The idea is to use the MachineMemOperand
forms when all fields are carried over (size, pointer info, isVolatile,
isNonTemporal, alignment and TBAA info). If some adjustment is being
made, e.g. to narrow the load, then we still pass the individual fields
but also pass the TBAA info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193517
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Mon, 28 Oct 2013 10:26:13 +0000 (10:26 +0000)]
lit: multiprocessing platform fix attempt
The error raised by Python varies by platform(!), so let's just catch any
exception and fall back.
Thanks to Sylvestre Ledru for noticing this on a Debian / Python 2.7 system
running code coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193516
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 28 Oct 2013 07:30:06 +0000 (07:30 +0000)]
SCEV: Make the final add of an inbounds GEP nuw if we know that the index is positive.
We can't do this for the general case as saying a GEP with a negative index
doesn't have unsigned wrap isn't valid for negative indices.
%gep = getelementptr inbounds i32* %p, i64 -1
But an inbounds GEP cannot run past the end of address space. So we check for
the very common case of a positive index and make GEPs derived from that NUW.
Together with Andy's recent non-unit stride work this lets us analyze loops
like
void foo3(int *a, int *b) {
for (; a < b; a++) {}
}
PR12375, PR12376.
Differential Revision: http://llvm-reviews.chandlerc.com/D2033
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193514
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:38 +0000 (04:07 +0000)]
Prune utf8 chars in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193512
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:31 +0000 (04:07 +0000)]
Prune trailing linefeeds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193511
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 28 Oct 2013 04:07:23 +0000 (04:07 +0000)]
Target/R600: Un-tab-ify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193510
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 27 Oct 2013 21:57:36 +0000 (21:57 +0000)]
Make first substantial checkin of my port of ARM constant islands code to Mips.
Before I just ported the shell of the pass. I've tried to keep everything
nearly identical to the ARM version. I think it will be very easy to eventually
merge these two and create a new more general pass that other targets can
use. I have some improvements I would like to make to allow pools to
be shared across functions and some other things. When I'm all done we
can think about making a more general pass. More to be ported but the
basic mechanism works now almost as good as gcc mips16.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193509
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Sun, 27 Oct 2013 20:49:19 +0000 (20:49 +0000)]
Clarify the comment about BSD versions in r193465
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193508
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 27 Oct 2013 11:31:46 +0000 (11:31 +0000)]
NVPTX: Remove unused globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193500
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 27 Oct 2013 11:16:09 +0000 (11:16 +0000)]
Hexagon: Remove global state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193499
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 27 Oct 2013 10:22:52 +0000 (10:22 +0000)]
MCJIT-remote: __main should be resolved in child context.
- Mark tests as XFAIL:cygming in test/ExecutionEngine/MCJIT/remote.
Rather to suppress them, I'd like to leave them running as XFAIL.
- Revert r193472. RecordMemoryManager no longer resolves __main on cygming.
There are a couple of issues.
- X86 Codegen emits "call __main" in @main for targeting cygming.
It is useless in JIT. FYI, tests are passing when emitting __main is disabled.
- Current remote JIT does not resolve any symbols in child context.
FIXME: __main should be disabled, or remote JIT should resolve __main.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193498
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Sun, 27 Oct 2013 08:18:37 +0000 (08:18 +0000)]
AVX-512: PMIN/PMAX intrinsics and patterns
Patch by Cameron McInally <cameron.mcinally@nyu.edu>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193497
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 05:09:12 +0000 (05:09 +0000)]
A small grammar-os fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193496
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 04:50:34 +0000 (04:50 +0000)]
Update to current output.
PR14039
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193494
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 04:25:02 +0000 (04:25 +0000)]
Fix Sphinx warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193493
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 04:19:29 +0000 (04:19 +0000)]
Update to specify that both metadata and label types aren't proper return types.
PR15447
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193492
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 04:02:21 +0000 (04:02 +0000)]
Update the Python version. And Perl isn't used anymore.
PR17608
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193491
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 27 Oct 2013 03:57:10 +0000 (03:57 +0000)]
Update link.
PR17608
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193490
91177308-0d34-0410-b5e6-
96231b3b80d8