OSDN Git Service
Matt Arsenault [Tue, 26 Feb 2013 19:33:48 +0000 (19:33 +0000)]
Another test commit. Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176113
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 26 Feb 2013 19:18:06 +0000 (19:18 +0000)]
Test commit. Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176111
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 26 Feb 2013 18:39:31 +0000 (18:39 +0000)]
Remove a few unused arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176109
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Tue, 26 Feb 2013 18:22:18 +0000 (18:22 +0000)]
[docs] Use reST link instead of direct HTML link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176108
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 26 Feb 2013 18:05:31 +0000 (18:05 +0000)]
Slight cosmetic fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176107
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:47 +0000 (17:52 +0000)]
R600/SI: Add promotion of e32 to e64 in operand folding
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176105
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:42 +0000 (17:52 +0000)]
R600/SI: add VOP mapping functions
Make it possible to map between e32 and e64 encoding opcodes.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176104
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:36 +0000 (17:52 +0000)]
R600/SI: swap operands if it helps folding
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176103
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:29 +0000 (17:52 +0000)]
R600/SI: add some more instruction flags
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176102
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:23 +0000 (17:52 +0000)]
R600/SI: add post ISel folding for SI v2
Include immediate folding and SGPR limit handling for VOP3 instructions.
v2: remove leftover hasExtraSrcRegAllocReq
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176101
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:16 +0000 (17:52 +0000)]
R600/SI: add folding helper
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176100
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:09 +0000 (17:52 +0000)]
R600/SI: fix VOP3b encoding v2
v2: document why we hardcode VCC for now.
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176099
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:52:03 +0000 (17:52 +0000)]
R600/SI: fix and cleanup SI register definition v2
Prevent producing real strange tablegen code by using
proper register sizes, alignments and hierarchy.
Also cleanup the unused definitions and add some comments.
v2: add SGPR 512 bit registers, stop registers from wrapping around,
fix SGPR alignment
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176098
91177308-0d34-0410-b5e6-
96231b3b80d8
Christian Konig [Tue, 26 Feb 2013 17:51:57 +0000 (17:51 +0000)]
R600/SI: fix stupid typo
This is a candidate for the mesa-stable branch.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176097
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Tue, 26 Feb 2013 17:23:13 +0000 (17:23 +0000)]
Adding ARM as supported architecture
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176096
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Tue, 26 Feb 2013 17:16:27 +0000 (17:16 +0000)]
Proper XFAILs for ARMv7 / v5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176095
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Tue, 26 Feb 2013 16:41:03 +0000 (16:41 +0000)]
Fix PR15359.
The PowerPC TLS relocation types were not previously added to the
necessary list in MCELFStreamer::fixSymbolsInTLSFixups(). Now they are!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176094
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Tue, 26 Feb 2013 13:32:40 +0000 (13:32 +0000)]
GCC 4.6.3 O3 miscompiles on ARM
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176090
91177308-0d34-0410-b5e6-
96231b3b80d8
Kostya Serebryany [Tue, 26 Feb 2013 06:58:09 +0000 (06:58 +0000)]
Unify clang/llvm attributes for asan/tsan/msan (LLVM part)
These are two related changes (one in llvm, one in clang).
LLVM:
- rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode)
- rename thread_safety => sanitize_thread
- rename no_uninitialized_checks -> sanitize_memory
CLANG:
- add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis))
- add __attribute__((no_sanitize_thread))
- add __attribute__((no_sanitize_memory))
for S in address thread memory
If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not
set llvm attribute sanitize_S
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176075
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Ilseman [Tue, 26 Feb 2013 01:31:59 +0000 (01:31 +0000)]
Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176072
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Tue, 26 Feb 2013 01:30:05 +0000 (01:30 +0000)]
[mips] Use class RegDefsUses to track register defs and uses.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176070
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 26 Feb 2013 01:05:31 +0000 (01:05 +0000)]
[fast-isel] Make sure the FastLowerArguments function checks to make sure the
arguments type is a simple type.
rdar://
13290455
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176066
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Mon, 25 Feb 2013 23:16:36 +0000 (23:16 +0000)]
Refine fix to PR10499, no functionality change
- Put expensive checking after simple one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176060
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Liao [Mon, 25 Feb 2013 23:01:03 +0000 (23:01 +0000)]
Fix PR10499
- Check whether SSE is available before lowering all 1s vector building with
PCMPEQD, which is only available from SSE2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176058
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Mon, 25 Feb 2013 23:00:19 +0000 (23:00 +0000)]
Provide workaround for PR 15130.
This changes the RecordingMemoryManager in lli to use mapped memory rather than malloc to allocate memory for sections and uses a 'near' MemoryBlock to keep the allocations together. This works around a problem in MCJIT where relocations are applied to a generated image immediately oupon generation, which isn't appropriate for the remote case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176057
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 25 Feb 2013 22:20:00 +0000 (22:20 +0000)]
Fix wording.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 25 Feb 2013 22:06:05 +0000 (22:06 +0000)]
Remove extraneous attribute number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176053
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 25 Feb 2013 21:59:35 +0000 (21:59 +0000)]
[fast-isel] Add X86FastIsel::FastLowerArguments to handle functions with 6 or
fewer scalar integer (i32 or i64) arguments. It completely eliminates the need
for SDISel for trivial functions.
Also, add the new llc -fast-isel-abort-args option, which is similar to
-fast-isel-abort option, but for formal argument lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176052
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Mon, 25 Feb 2013 19:11:48 +0000 (19:11 +0000)]
pre-RA-sched fix: only reevaluate physreg interferences when necessary.
Fixes rdar:
13279013: scheduler was blowing up on select instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Mon, 25 Feb 2013 19:06:27 +0000 (19:06 +0000)]
[ms-inline asm] Add support for the pushad/popad mnemonics.
rdar://
13254235
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176036
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Mon, 25 Feb 2013 18:25:58 +0000 (18:25 +0000)]
ARM build docs easier for copy&paste
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176033
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Beaumont-Gay [Mon, 25 Feb 2013 18:11:18 +0000 (18:11 +0000)]
'Hexadecimal' has two 'a's and only one 'i'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176031
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Mon, 25 Feb 2013 16:44:35 +0000 (16:44 +0000)]
Fix missing relocation for TLS addressing peephole optimization.
Report and fix due to Kai Nacke. Testcase update by me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 25 Feb 2013 14:29:38 +0000 (14:29 +0000)]
Fix spelling noticed by Duncan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 25 Feb 2013 14:20:21 +0000 (14:20 +0000)]
Fix the root cause of PR15348 by correctly handling alignment 0 on
memory intrinsics in the SDAG builder.
When alignment is zero, the lang ref says that *no* alignment
assumptions can be made. This is the exact opposite of the internal API
contracts of the DAG where alignment 0 indicates that the alignment can
be made to be anything desired.
There is another, more explicit alignment that is better suited for the
role of "no alignment at all": an alignment of 1. Map the intrinsic
alignment to this early so that we don't end up generating aligned DAGs.
It is really terrifying that we've never seen this before, but we
suddenly started generating a large number of alignment 0 memcpys due to
the new code to do memcpy-based copying of POD class members. That patch
contains a bug that rounds bitfield alignments down when they are the
first field. This can in turn produce zero alignments.
This fixes weird crashes I've seen in library users of LLVM on 32-bit
hosts, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176022
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Mon, 25 Feb 2013 02:25:47 +0000 (02:25 +0000)]
Make pseudos FEXT_CCRX16_ins and FEXT_CCRXI16_ins into custom emitters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176007
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 25 Feb 2013 01:07:18 +0000 (01:07 +0000)]
DIBuilder: support structs with vtable pointers in the same way as classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176004
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 24 Feb 2013 23:17:51 +0000 (23:17 +0000)]
Make psuedo FEXT_T8I816_ins into a custom emitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176002
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Sun, 24 Feb 2013 17:34:50 +0000 (17:34 +0000)]
Fix PR14364.
This removes a const_cast hack from PPCRegisterInfo::hasReservedSpillSlot().
The proper place to save the frame index for the CR spill slot is in the
PPCFunctionInfo object, not the PPCRegisterInfo object.
No new test cases, as this just reimplements existing function. Existing
tests such as test/CodeGen/PowerPC/crsave.ll are sufficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175998
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 24 Feb 2013 15:34:43 +0000 (15:34 +0000)]
CVP: If we have a PHI with an incoming select, try to skip the select.
This is a common pattern with dyn_cast and similar constructs, when the
PHI no longer depends on the select it can often be turned into a simpler
construct or even get hoisted out of the loop.
PR15340.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175995
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 24 Feb 2013 15:34:29 +0000 (15:34 +0000)]
Fix invalid IR in test, missing incoming value for PHI node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175994
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Sun, 24 Feb 2013 12:34:13 +0000 (12:34 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175991
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Sun, 24 Feb 2013 07:09:35 +0000 (07:09 +0000)]
Revert r169638 because it broke Mesa llvmpipe tests.
Fix PR15239.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175985
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sun, 24 Feb 2013 06:16:39 +0000 (06:16 +0000)]
Make psuedo FEXT_T8I816_ins a custom inserter. It should be expanded
as early as possible; which means during instruction selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175984
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sun, 24 Feb 2013 01:26:05 +0000 (01:26 +0000)]
Add a use of an otherwise unused variable to remove a warning in non-Asserts
builds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175981
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sun, 24 Feb 2013 00:27:29 +0000 (00:27 +0000)]
TwoAddressInstructionPass::tryInstructionTransform() only potentially returns
true when shouldOnlyCommute is false, so we can remove code that checks
otherwise.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175980
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sun, 24 Feb 2013 00:27:26 +0000 (00:27 +0000)]
TwoAddrInstructionPass::tryInstructionTransform() has a case where it calls
itself recursively with a new instruction that has not been finalized, in order
to determine whether to keep the instruction. On 'make check' and test-suite the
only cases where the recursive invocation made any transformations were simple
instruction commutations, so I am restricting the recursive invocation to do
only this.
The other cases wouldn't work correctly when updating LiveIntervals, since the
new instructions don't have slot indices and LiveIntervals hasn't yet been
updated. If the other transformations were actually triggering in any test case
it would be possible to support it with a lot of effort, but since they don't
it's not worth it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175979
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sat, 23 Feb 2013 23:37:03 +0000 (23:37 +0000)]
Add new base instruction def for cmpi, cmp, slt and sltu so that def/uses
proper. Fixed this already a few days ago for slti.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175975
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 23 Feb 2013 23:13:28 +0000 (23:13 +0000)]
TargetInstrInfo::commuteInstruction() doesn't actually return a new instruction
unless it was requested to with an optional parameter that defaults to false, so
we don't need to handle that case in TwoAddressInstructionPass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175974
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Sat, 23 Feb 2013 13:25:41 +0000 (13:25 +0000)]
Add global structure vectorization to docs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175965
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Sat, 23 Feb 2013 12:48:30 +0000 (12:48 +0000)]
Some more tests for the global structure vectorizer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175964
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 23 Feb 2013 10:40:58 +0000 (10:40 +0000)]
X86: Disable cmov-memory patterns on subtargets without cmov.
Fixes PR15115.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175962
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 23 Feb 2013 10:25:25 +0000 (10:25 +0000)]
Make some fixes for LiveInterval repair with debug info. Debug value
MachineInstrs don't have a slot index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175961
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 23 Feb 2013 04:49:22 +0000 (04:49 +0000)]
Fix a bug with the LiveIntervals updating in the two-address pass found by
running ASCI_Purple/SMG2000 in the test-suite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175957
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 23 Feb 2013 04:49:20 +0000 (04:49 +0000)]
Make TwoAddressInstructionPass::sink3AddrInstruction() LiveIntervals-aware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175956
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Sat, 23 Feb 2013 04:49:13 +0000 (04:49 +0000)]
Make rescheduleMIBelowKill() and rescheduleKillAboveMI() LiveIntervals-aware in
TwoAddressInstructionPass. The code in rescheduleMIBelowKill() is a bit tricky,
since multiple instructions need to be moved down, one-at-a-time, in reverse
order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175955
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Sat, 23 Feb 2013 03:09:56 +0000 (03:09 +0000)]
Expand pseudos/macros for Selt. This is the last of the complex
macros.The rest is some small misc. stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175950
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 23 Feb 2013 00:52:09 +0000 (00:52 +0000)]
ARM: Convenience aliases for 'srs*' instructions.
Handle an implied 'sp' operand.
rdar://
11466783
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175940
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Sat, 23 Feb 2013 00:31:32 +0000 (00:31 +0000)]
Fixed a careless mistake.
rdar://
13273675.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175939
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 22 Feb 2013 23:50:08 +0000 (23:50 +0000)]
Use getSplitDebugFilename when constructing the skeleton cu and
update testcase accordingly to give the correct name to the cu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175934
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 22 Feb 2013 23:50:04 +0000 (23:50 +0000)]
Add a field to the compile unit of where we plan on splitting out
the debug info for -gsplit-dwarf so we can encode that location
in the skeleton cu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175933
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 22 Feb 2013 23:50:01 +0000 (23:50 +0000)]
Add a TODO and explain when we can get rid of the isMain field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175932
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 22 Feb 2013 23:49:58 +0000 (23:49 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175931
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Fri, 22 Feb 2013 23:33:30 +0000 (23:33 +0000)]
SelectionDAG compile time improvement.
One of the phases of SelectionDAG is LegalizeVectors. We don't need to sort the DAG and copy nodes around if there are no vector ops.
Speeds up the compilation time of SelectionDAG on a big scalar workload by ~8%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175929
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Fri, 22 Feb 2013 21:10:03 +0000 (21:10 +0000)]
[mips] Emit call16 operator instead of got_disp. The former allows lazy binding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175920
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 22 Feb 2013 19:53:30 +0000 (19:53 +0000)]
Fix test by matching movaps instead of AVX-only vmovaps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175914
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 22 Feb 2013 19:19:44 +0000 (19:19 +0000)]
x86_64: designate most general purpose and SSE registers as callee save under coldcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175911
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 22 Feb 2013 19:19:41 +0000 (19:19 +0000)]
Revert "Test commit"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175910
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Fri, 22 Feb 2013 19:18:15 +0000 (19:18 +0000)]
Test commit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175909
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 22 Feb 2013 18:58:26 +0000 (18:58 +0000)]
An Optional<T> is pod-like if the inner type is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175908
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 22 Feb 2013 18:16:21 +0000 (18:16 +0000)]
Remove unused CHECK lines copied from another test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175905
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Fri, 22 Feb 2013 16:18:31 +0000 (16:18 +0000)]
More tests to global struct vectorizer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175898
91177308-0d34-0410-b5e6-
96231b3b80d8
Pekka Jaaskelainen [Fri, 22 Feb 2013 12:03:07 +0000 (12:03 +0000)]
Made it more explicit that the self-referential llvm.loop identifier metadata
should be unique for each loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175888
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Fri, 22 Feb 2013 11:22:58 +0000 (11:22 +0000)]
R600/SI: Add pattern for sign extension of i1 to i32.
16 more little piglits with radeonsi.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175887
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Fri, 22 Feb 2013 11:22:54 +0000 (11:22 +0000)]
R600/SI: Add pattern for logical or of i1 values.
24 more little piglits with radeonsi.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175886
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Fri, 22 Feb 2013 11:22:49 +0000 (11:22 +0000)]
R600/SI: Add pattern for fceil.
9 more little piglits with radeonsi.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175885
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Beyls [Fri, 22 Feb 2013 10:01:33 +0000 (10:01 +0000)]
Make ARMAsmPrinter generate the correct alignment specifier syntax in instructions.
The Printer will now print instructions with the correct alignment specifier syntax, like
vld1.8 {d16}, [r0:64]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175884
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 22 Feb 2013 09:09:42 +0000 (09:09 +0000)]
Use references to attribute groups on the call/invoke instructions.
Listing all of the attributes for the callee of a call/invoke instruction is way
too much and makes the IR unreadable. Use references to attributes instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175877
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Fri, 22 Feb 2013 05:59:39 +0000 (05:59 +0000)]
Fix a nomenclature mistake. Slt->Slti in the functions. The "i" refers
to the immediate operand of sli or cmp function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175865
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Fri, 22 Feb 2013 05:10:51 +0000 (05:10 +0000)]
Expand mips16 SelT form pseudso/macros.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175862
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Cooper [Fri, 22 Feb 2013 01:50:38 +0000 (01:50 +0000)]
Fix isa<> check which could never be true.
It was incorrectly checking a Function* being an IntrinsicInst* which
isn't possible. It should always have been checking the CallInst* instead.
Added test case for x86 which ensures we only get one constant load.
It was 2 before this change.
rdar://problem/
13267920
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175853
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Fri, 22 Feb 2013 01:15:08 +0000 (01:15 +0000)]
Remove code copied from GenRegisterInfo.inc.
There's no apparent reason this code was copied from generated source
into a .cpp. It sets a bad example for those working on other targets
and trying to understand the register info API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175849
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Fri, 22 Feb 2013 00:50:48 +0000 (00:50 +0000)]
Code cleanup: pass Offset by pointer to parseInstruction to more explicitly
convey that it's a INOUT argument.
Also, if parsing of entry instructions fails, don't push the entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175847
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 22 Feb 2013 00:50:09 +0000 (00:50 +0000)]
Remove warning about default covering no cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175846
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 22 Feb 2013 00:40:12 +0000 (00:40 +0000)]
Add a bitmask for NoBuiltin. This should *not* be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175843
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 22 Feb 2013 00:12:35 +0000 (00:12 +0000)]
Implement the NoBuiltin attribute.
The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should
not treat the callee function as a built-in function. I.e., it shouldn't try to
replace that function with different code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175835
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Thu, 21 Feb 2013 22:58:42 +0000 (22:58 +0000)]
Stop relying on physical register kill flags in isKilled() in the two-address
pass. One of the callers of isKilled() can cope with overapproximation of kills
and the other can't, so I added a flag to indicate this.
In theory this could pessimize code slightly, but in practice most physical
register uses are kills, and most important kills of physical registers are the
only uses of that register prior to register allocation, so we can recognize
them as kills even without kill flags.
This is relevant because LiveIntervals gets rid of all kill flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175821
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Thu, 21 Feb 2013 22:53:19 +0000 (22:53 +0000)]
Previously, parsing capability of the .debug_frame section was added
to lib/DebugInfo, with dumping in llvm-dwarfdump. This patch adds
initial ability to parse and dump CFA instructions contained in
entries.
To keep it manageable, the patch omits some more advanced capabilities
(accounted in TODOs):
* Parsing of instructions with BLOCK arguments (expression lists)
* Dumping of actual instruction arguments (currently only names are
dumped). This is quite tricky since the dumper has to effectively
"interpret" the instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175820
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 21 Feb 2013 22:48:34 +0000 (22:48 +0000)]
Limit cast machinery to preserve const and not accept temporaries
After cleaning up the following type hierarchies:
* TypeLoc: r175462
* SVal: r175594
* CFGElement: r175462
* ProgramPoint: r175812
that all invoked undefined behavior by causing a derived copy construction of a
base object through an invalid cast (thus supporting code that relied on
casting temporaries that were direct base objects) Clang/LLVM is now clean of
casts of temporaries. So here's some fun SFINAE machinery (courtesy of Eli
Friedman, with some porting back from C++11 to LLVM's traits by me) to cause
compile-time failures if llvm::cast & friends are ever passed an rvalue.
This should avoid a repeat of anything even remotely like PR14321/r168124.
Thanks to Jordan Rose for the help with the various Static Analyzer related
hierarchies that needed cleaning up, Eli for the SFINAE, Richard Smith, John
McCall, Ted Kremenek, and Anna Zaks for their input/reviews/patience along the
way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175819
91177308-0d34-0410-b5e6-
96231b3b80d8
Renato Golin [Thu, 21 Feb 2013 22:39:03 +0000 (22:39 +0000)]
Allow GlobalValues to vectorize with AliasAnalysis
Storing the load/store instructions with the values
and inspect them using Alias Analysis to make sure
they don't alias, since the GEP pointer operand doesn't
take the offset into account.
Trying hard to not add any extra cost to loads and stores
that don't overlap on global values, AA is *only* calculated
if all of the previous attempts failed.
Using biggest vector register size as the stride for the
vectorization access, as we're being conservative and
the cost model (which calculates the real vectorization
factor) is only run after the legalization phase.
We might re-think this relationship in the future, but
for now, I'd rather be safe than sorry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175818
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 21 Feb 2013 22:16:43 +0000 (22:16 +0000)]
Re-apply r175688, with the changes suggested by Jakob in PR15320.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175809
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 21 Feb 2013 21:40:51 +0000 (21:40 +0000)]
Remove dead code and whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175804
91177308-0d34-0410-b5e6-
96231b3b80d8
Pedro Artigas [Thu, 21 Feb 2013 21:32:00 +0000 (21:32 +0000)]
Clear the whole table including the tombstones, since the tombstone count will
be set to zero that is what it was intended. Should improve performance of
the data structure when clear is invoked frequently (both compile time and
memory usage).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175799
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Thu, 21 Feb 2013 20:05:00 +0000 (20:05 +0000)]
Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo
to TargetFrameLowering, where it belongs. Incidentally, this allows us
to delete some duplicated (and slightly different!) code in TRI.
There are potentially other layering problems that can be cleaned up
as a result, or in a similar manner.
The refactoring was OK'd by Anton Korobeynikov on llvmdev.
Note: this touches the target interfaces, so out-of-tree targets may
be affected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175788
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 21 Feb 2013 19:46:51 +0000 (19:46 +0000)]
Don't assert on empty attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175785
91177308-0d34-0410-b5e6-
96231b3b80d8
Anshuman Dasgupta [Thu, 21 Feb 2013 19:39:40 +0000 (19:39 +0000)]
Hexagon: Expand cttz, ctlz, and ctpop for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175783
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 21 Feb 2013 19:35:21 +0000 (19:35 +0000)]
Make RAFast::UsedInInstr indexed by register units.
This fixes some problems with too conservative checking where we were
marking all aliases of a register as used, and then also checking all
aliases when allocating a register.
<rdar://problem/
13249625>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175782
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 21 Feb 2013 18:37:54 +0000 (18:37 +0000)]
Radar numbers don't belong in source code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175775
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Schmidt [Thu, 21 Feb 2013 17:26:05 +0000 (17:26 +0000)]
Trivial cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175771
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Redmond [Thu, 21 Feb 2013 17:20:45 +0000 (17:20 +0000)]
add missing space which prevented the llvm.loop code-block from appearing in the
generated html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175769
91177308-0d34-0410-b5e6-
96231b3b80d8