Tim Northover [Fri, 15 Feb 2013 09:33:26 +0000 (09:33 +0000)]
AArch64: refactor frame handling to use movz/movk for overlarge offsets.
In the near future litpools will be in a different section, which means that
any access to them is at least two instructions. This makes the case for a
movz/movk pair (if total offset <= 32-bits) even more compelling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175257
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Fri, 15 Feb 2013 08:54:47 +0000 (08:54 +0000)]
clang-formatize llvm-symbolizer code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175255
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Feb 2013 05:25:26 +0000 (05:25 +0000)]
Simplify the 'operator<' for the attribute object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175252
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Fri, 15 Feb 2013 04:28:42 +0000 (04:28 +0000)]
BBVectorize: Cap the number of candidate pairs in each instruction group
For some basic blocks, it is possible to generate many candidate pairs for
relatively few pairable instructions. When many (tens of thousands) of these pairs
are generated for a single instruction group, the time taken to generate and
rank the different vectorization plans can become quite large. As a result, we now
cap the number of candidate pairs within each instruction group. This is done by
closing out the group once the threshold is reached (set now at 3000 pairs).
Although this will limit the overall compile-time impact, this may not be the best
way to achieve this result. It might be better, for example, to prune excessive
candidate pairs after the fact the prevent the generation of short, but highly-connected
groups. We can experiment with this in the future.
This change reduces the overall compile-time slowdown of the csa.ll test case in
PR15222 to ~5x. If 5x is still considered too large, a lower limit can be
used as the default.
This represents a functionality change, but only for very large inputs
(thus, there is no regression test).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175251
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 15 Feb 2013 04:15:55 +0000 (04:15 +0000)]
Revert "Simplify the attributes '<' comparison function."
This reverts commit
82c101153fe7b35bce48781fab038e1b8f31a7bd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175250
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 15 Feb 2013 04:15:53 +0000 (04:15 +0000)]
Revert "Fix testcase for attribute ordering."
This reverts commit
58f20a3cbfca7384fe5e25e095f18572736a4792.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175249
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Zaks [Fri, 15 Feb 2013 04:15:50 +0000 (04:15 +0000)]
Revert "Fix testcase for attribute ordering."
This reverts commit
997c6516ca161073a1d516ebca7c0ca7722f64e2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175248
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Feb 2013 01:04:46 +0000 (01:04 +0000)]
Fix testcase for attribute ordering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175238
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Fri, 15 Feb 2013 01:04:38 +0000 (01:04 +0000)]
Fix minor mips16 issues in directives for function prologue. Probably this does
not matter but makes it more gcc compatible which avoids possible subtle
problems. Also, turned back on a disabled check in helloworld.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175237
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Feb 2013 00:58:25 +0000 (00:58 +0000)]
Fix testcase for attribute ordering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175236
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Feb 2013 00:55:08 +0000 (00:55 +0000)]
Simplify the attributes '<' comparison function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175235
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 14 Feb 2013 23:54:40 +0000 (23:54 +0000)]
[mips] Disallow moving load/store instructions past volatile instructions.
Unfortunately, I wasn't able to create a test case that demonstrates the
problem I was trying to fix with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175226
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 14 Feb 2013 23:40:57 +0000 (23:40 +0000)]
[mips] Replace usage of SmallSet with BitVector, which is used to keep track of
defined and used registers. Also add a few helper functions to simplify the
code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175224
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 14 Feb 2013 23:20:15 +0000 (23:20 +0000)]
[mips] Fix comments and coding style violations. Declare functions to be const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175222
91177308-0d34-0410-b5e6-
96231b3b80d8
Joel Jones [Thu, 14 Feb 2013 23:18:40 +0000 (23:18 +0000)]
The ARM NEON vector compare instructions take three arguments. However, the
assembler should also accept a two arg form, as the docuemntation specifies that
the first (destination) register is optional.
This patch uses TwoOperandAliasConstraint to add the two argument form.
It also fixes an 80-column formatting problem in:
test/MC/ARM/neon-bitwise-encoding
<rdar://problem/
12909419> Clang rejects ARM NEON assembly instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175221
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Thu, 14 Feb 2013 23:17:03 +0000 (23:17 +0000)]
The operand listing is very much outdated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175220
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Thu, 14 Feb 2013 23:11:24 +0000 (23:11 +0000)]
[mips] Simplify code in function Filler::findDelayInstr.
1. Define and use function terminateSearch.
2. Use MachineBasicBlock::iterator instead of MachineBasicBlock::instr_iterator.
3. Delete the line which checks whether an instruction is a pseudo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175219
91177308-0d34-0410-b5e6-
96231b3b80d8
Preston Gurd [Thu, 14 Feb 2013 22:49:29 +0000 (22:49 +0000)]
Mark getRawBits const.
Patch by Tyler Nowicki.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175218
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Thu, 14 Feb 2013 22:38:04 +0000 (22:38 +0000)]
BBVectorize: Remove the remaining instances of std::multimap
All instances of std::multimap have now been replaced by
DenseMap<K, std::vector<V> >, and this yields a speedup of 5% on the
csa.ll test case from PR15222.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175216
91177308-0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Thu, 14 Feb 2013 22:37:09 +0000 (22:37 +0000)]
BBVectorize: Don't store candidate pairs in a std::multimap
This is another commit on the road to removing std::multimap from
BBVectorize. This gives an ~1% speedup on the csa.ll test case
in PR15222.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175215
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Thu, 14 Feb 2013 21:50:09 +0000 (21:50 +0000)]
Simplify code. Remove "else after return".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Thu, 14 Feb 2013 20:44:07 +0000 (20:44 +0000)]
Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175209
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 14 Feb 2013 19:57:17 +0000 (19:57 +0000)]
Hexagon: Change insn class to support instruction encoding.
This patch doesn't introduce any functionality changes.
It adds some new fields to the Hexagon instruction classes and
changes their layout to support instruction encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175205
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Feb 2013 19:40:27 +0000 (19:40 +0000)]
s/bool/LLVMBool/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175204
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Feb 2013 19:39:14 +0000 (19:39 +0000)]
s/bool/LLVMBool/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175203
91177308-0d34-0410-b5e6-
96231b3b80d8
Kay Tiong Khoo [Thu, 14 Feb 2013 19:15:14 +0000 (19:15 +0000)]
death to extra whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175200
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Feb 2013 19:11:28 +0000 (19:11 +0000)]
Add two new functions to the C API:
LLVMCreateMemoryBufferWithMemoryRange - exposes MemoryBuffer::getMemBuffer
LLVMCreateMemoryBufferWithMemoryRangeCopy - exposes MemoryBuffer::getMemBufferCopy
Patch by Moritz Maxeiner!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175199
91177308-0d34-0410-b5e6-
96231b3b80d8
Kay Tiong Khoo [Thu, 14 Feb 2013 19:08:21 +0000 (19:08 +0000)]
added basic support for Intel ADX instructions
-feature flag, instructions definitions, test cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175196
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Thu, 14 Feb 2013 19:03:25 +0000 (19:03 +0000)]
R600/SI: Fix int_SI_fs_interp_constant
The important fix is that the constant interpolation value is stored in the
parameter slot P0, which is encoded as 2.
In addition, drop the SI_INTERP_CONST pseudo instruction, pass the parameter
slot as an operand to V_INTERP_MOV_F32 instead of hardcoding it there, and
add a special operand class for the parameter slots for type checking and
pretty printing.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-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@175193
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Vyukov [Thu, 14 Feb 2013 18:41:42 +0000 (18:41 +0000)]
include/llvm/Object/ELF.h: do debug checks only when NDEBUG
validateSymbol() is called all over the place, and it seems it's a debug check.
It significantly speedups llvm-symbolizer used in tsan/asan/msan. validateSymbol() is the second hot function and accounts for 15% of runtime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175192
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Thu, 14 Feb 2013 18:28:52 +0000 (18:28 +0000)]
Dont merge consecutive loads/stores into vectors when noimplicitfloat is used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175190
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Thu, 14 Feb 2013 18:20:48 +0000 (18:20 +0000)]
80-col
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175189
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 14 Feb 2013 18:15:29 +0000 (18:15 +0000)]
Hexagon: Use multiclass for absolute addressing mode loads.
This patch doesn't introduce any functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175187
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Thu, 14 Feb 2013 18:10:21 +0000 (18:10 +0000)]
Re-apply r175088 for bug fix 13622: Add paired register support for
inline asm with 64-bit data on ARM
Update test case to use -mtriple=arm-linux-gnueabi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175186
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Thu, 14 Feb 2013 17:58:13 +0000 (17:58 +0000)]
Fix for bug 15246 -- out-of-bound error in the TableGen backend, CodeGenMapTable.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175185
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Thu, 14 Feb 2013 16:57:19 +0000 (16:57 +0000)]
R600: Do not fold single instruction with more that 3 kcache read
It fixes around 100 tfb piglit tests and 16 glean tests.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175183
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Thu, 14 Feb 2013 16:55:11 +0000 (16:55 +0000)]
R600: Export instructions are no longer terminator
This allows MachineInstScheduler to reorder them, and thus make scheduling more
efficient.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175182
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Thu, 14 Feb 2013 16:55:06 +0000 (16:55 +0000)]
R600: Fold zero/one in export instructions
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175181
91177308-0d34-0410-b5e6-
96231b3b80d8
Vincent Lejeune [Thu, 14 Feb 2013 16:55:01 +0000 (16:55 +0000)]
R600: Do not fold modifier/litterals in vector inst
This fixes a couple of regressions on (probably not just) cayman
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175180
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 14 Feb 2013 16:49:32 +0000 (16:49 +0000)]
Use correct host/target CMake variables to define lit variables.
CMake and autotools disagree on what "host" means in a cross-compilation
context. Autotools (and lit) take it to be the machine the binaries being
compiled now will run on. CMake takes it to be the machine actually compiling
the binaries now.
This change makes lit.site-cfg more consistent between autotools and CMake,
allowing lit tests (particularly in ExecutionEngine) to run correctly when
cross-compiled with CMake
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175179
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 14 Feb 2013 16:31:12 +0000 (16:31 +0000)]
AArch64: switch from neverHasSideEffects to hasSideEffects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175176
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 14 Feb 2013 16:31:06 +0000 (16:31 +0000)]
Add deprecation of neverHasSideEffects to documentation comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175175
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Feb 2013 16:23:08 +0000 (16:23 +0000)]
Revert r15266. This fixes llvm.org/pr15266.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175173
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 14 Feb 2013 16:22:14 +0000 (16:22 +0000)]
AArch64: stop claiming that NEON registers are usable for now.
If vector types have legal register classes, then LLVM bypasses LegalizeTypes
on them, which causes faults currently since the code to handle them isn't in
place.
This fixes test failures when AArch64 is the default target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175172
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Thu, 14 Feb 2013 16:17:01 +0000 (16:17 +0000)]
AArch64: add block comments where missing
Only comments affected. No code change at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175169
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Thu, 14 Feb 2013 16:10:58 +0000 (16:10 +0000)]
Add testcase for llvm-dwarfdump to test parsing of the pubnames data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175168
91177308-0d34-0410-b5e6-
96231b3b80d8
David Chisnall [Thu, 14 Feb 2013 15:40:44 +0000 (15:40 +0000)]
On FreeBSD, we need to look in /usr/local/include so that libxml2 finds iconv.h
Patch by Jonathan Anderson!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175167
91177308-0d34-0410-b5e6-
96231b3b80d8
Kristof Beyls [Thu, 14 Feb 2013 14:46:12 +0000 (14:46 +0000)]
Make ARMAsmParser accept the correct alignment specifier syntax in instructions.
The parser will now accept instructions with alignment specifiers written like
vld1.8 {d16}, [r0:64]
, while also still accepting the incorrect syntax
vld1.8 {d16}, [r0, :64]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175164
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Vyukov [Thu, 14 Feb 2013 13:06:18 +0000 (13:06 +0000)]
llvm-symbolizer: speedup symbol lookup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175158
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 14 Feb 2013 12:18:32 +0000 (12:18 +0000)]
Workaround an MSan false positive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175156
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 14 Feb 2013 09:07:34 +0000 (09:07 +0000)]
Moved line-info.ll to DebugInfo\X86 directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175150
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 14 Feb 2013 09:07:33 +0000 (09:07 +0000)]
Add some legality checks for SETCC before introducing it in the DAG combiner post-operand legalization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175149
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 14 Feb 2013 08:23:08 +0000 (08:23 +0000)]
The test failed on Windows. I've changed the platform to run to "x86_64-apple-darwin".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175146
91177308-0d34-0410-b5e6-
96231b3b80d8
Elena Demikhovsky [Thu, 14 Feb 2013 08:20:26 +0000 (08:20 +0000)]
Fixed a bug in X86TargetLowering::LowerVectorIntExtend() (assertion failure).
Added a test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175144
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Thu, 14 Feb 2013 08:00:33 +0000 (08:00 +0000)]
R600/SI: Check for empty stack in SIAnnotateControlFlow::isTopOfStack
Fixes assertion failure in newly added lit test. Might just be a bandaid that
needs to be revisited.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175139
91177308-0d34-0410-b5e6-
96231b3b80d8
Michel Danzer [Thu, 14 Feb 2013 07:43:51 +0000 (07:43 +0000)]
R600: Add lit tests for texture sampling instruction selection.
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175138
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 14 Feb 2013 03:45:08 +0000 (03:45 +0000)]
Reapply "s/grep/FileCheck/ in some tests"
This reverts commit
fd1335e982bbf93c5f450ed4fd29f9f787435c85.
Use a triple this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175134
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Feb 2013 03:33:34 +0000 (03:33 +0000)]
Revert r175120 and r175121. Clang is producing the expected asm names again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175133
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Thu, 14 Feb 2013 03:25:24 +0000 (03:25 +0000)]
RegisterCoalescer::reMaterializeTrivialDef() can constrain the destination
register class to match the defining instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175130
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Thu, 14 Feb 2013 03:24:14 +0000 (03:24 +0000)]
Add missing typename to unbreak the MSVC 2012 build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175129
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 14 Feb 2013 03:23:37 +0000 (03:23 +0000)]
Teach the DataLayout aware constant folder to be much more aggressive towards
'and' instructions. This is a pattern that shows up a lot in ubsan binaries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175128
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Thu, 14 Feb 2013 03:05:25 +0000 (03:05 +0000)]
Remove the form field from Mips16 instruction formats and set things
up so that we can apply the direct object emitter patch. This patch
should be a nop right now and it's test is to not break what is already
there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175126
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 14 Feb 2013 03:00:57 +0000 (03:00 +0000)]
Revert "s/grep/FileCheck/ in some tests"
This reverts commit
8b75e6bc35fb3f9c1e788dbd05084c0f4a60a0f3.
The FileCheck tests are not equivalent:
test/CodeGen/X86/tailcall-structret.ll:6:10: error: expected string not found in input
; CHECK: jmp init
^
<stdin>:1:2: note: scanning from here
.section __TEXT,__text,regular,pure_instructions
^
<stdin>:13:2: note: possible intended match here
jmp _init ## TAILCALL
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175124
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Thu, 14 Feb 2013 02:51:05 +0000 (02:51 +0000)]
Fix RegisterCoalescer::rematerializeTrivialDef() so that it works on flipped
CoalescerPairs. Also, make it take a CoalescerPair directly like other methods
of RegisterCoalescer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175123
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Zwarich [Thu, 14 Feb 2013 02:51:03 +0000 (02:51 +0000)]
Fix some issues with rematerialization in RegisterCoalescer when the destination
of the copy is a subregister def. The current code assumes that it can do a full
def of the destination register, but it is not checking that the def operand is
read-undef. It also doesn't clear the subregister index of the destination in
the new instruction to reflect the full subregister def.
These issues were found running 'make check' with my next commit that enables
rematerialization in more cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175122
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Feb 2013 02:49:18 +0000 (02:49 +0000)]
Don't assume the mangling of static functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175121
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Feb 2013 01:58:08 +0000 (01:58 +0000)]
Don't asume that a static function in an extern "C" block will not be mangled.
Since functions with internal linkage don't have language linkage, it is valid
to overload them:
extern "C" {
static int foo();
static int foo(int);
}
So we mangle them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175120
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Wed, 13 Feb 2013 23:24:40 +0000 (23:24 +0000)]
temporarily revert the patch due to some conflicts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175107
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Feb 2013 23:00:51 +0000 (23:00 +0000)]
Retain the name of the new internal global that's been shrunk.
It's possible (e.g. after an LTO build) that an internal global may be used for
debugging purposes. If that's the case appending a '.b' to it makes it hard to
find that variable. Steal the name from the old GV before deleting it so that
they can find that variable again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175104
91177308-0d34-0410-b5e6-
96231b3b80d8
Anshuman Dasgupta [Wed, 13 Feb 2013 22:56:34 +0000 (22:56 +0000)]
Hexagon: add support for predicate-GPR copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175102
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Rosenberg [Wed, 13 Feb 2013 22:45:52 +0000 (22:45 +0000)]
llvm-gcc -pedantic warns about C++ comments in C90 mode even if they're
inside an #if 0 block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175098
91177308-0d34-0410-b5e6-
96231b3b80d8
Ryan Govostes [Wed, 13 Feb 2013 22:37:27 +0000 (22:37 +0000)]
Fix iterator definitions for ImmutableSet and ImmutableMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175097
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Wed, 13 Feb 2013 22:05:20 +0000 (22:05 +0000)]
R600: Add support for 128-bit parameters
NOTE: This is a candidate for the Mesa stable branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175096
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Wed, 13 Feb 2013 22:00:37 +0000 (22:00 +0000)]
s/grep/FileCheck/ in some tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175093
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 13 Feb 2013 21:59:15 +0000 (21:59 +0000)]
Don't build tail calls to functions with three inreg arguments on x86-32 PIC.
Fixes PR15250!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175092
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Wed, 13 Feb 2013 21:46:38 +0000 (21:46 +0000)]
s/grep/FileCheck/ in some tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175089
91177308-0d34-0410-b5e6-
96231b3b80d8
Weiming Zhao [Wed, 13 Feb 2013 21:43:02 +0000 (21:43 +0000)]
Bug fix 13622: Add paired register support for inline asm with 64-bit data on ARM
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 13 Feb 2013 21:41:58 +0000 (21:41 +0000)]
[ms-inline asm] Fix up test case for non-Darwin platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175087
91177308-0d34-0410-b5e6-
96231b3b80d8
Jyotsna Verma [Wed, 13 Feb 2013 21:38:46 +0000 (21:38 +0000)]
Hexagon: Use absolute addressing mode loads/stores for global+offset
instead of redefining separate instructions for them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175086
91177308-0d34-0410-b5e6-
96231b3b80d8
Ryan Govostes [Wed, 13 Feb 2013 21:38:22 +0000 (21:38 +0000)]
Add iterator_traits to ImmutableMap and ImmutableSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 13 Feb 2013 21:33:44 +0000 (21:33 +0000)]
[ms-inline-asm] Add support for memory references that have non-immediate
displacements.
rdar://
12974533
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 13 Feb 2013 21:27:17 +0000 (21:27 +0000)]
[ms-inline asm] Add a comment about the determinism of the rewrite sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175082
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Wed, 13 Feb 2013 21:19:39 +0000 (21:19 +0000)]
configure: remove workaround for gcc's -Wno-maybe-uninitialized
Since r174770 gcc version check is not needed because CXX_FLAG_CHECK
implements the workaround itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175080
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 13 Feb 2013 21:17:20 +0000 (21:17 +0000)]
[docs] PR15254: Add "AST" to the lexicon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175077
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 13 Feb 2013 21:12:29 +0000 (21:12 +0000)]
LoopVectorize: Simplify code for clarity.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175076
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Feb 2013 21:10:15 +0000 (21:10 +0000)]
Add a blurb about the attributes changes to the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175075
91177308-0d34-0410-b5e6-
96231b3b80d8
Reed Kotler [Wed, 13 Feb 2013 20:28:27 +0000 (20:28 +0000)]
For Mips 16, add the optimization where the 16 bit form of addiu sp can be used
if the offset fits in 11 bits. This makes use of the fact that the abi
requires sp to be 8 byte aligned so the actual offset can fit in 8
bits. It will be shifted left and sign extended before being actually used.
The assembler or direct object emitter will shift right the 11 bit
signed field by 3 bits. We don't need to deal with that here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175073
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Wed, 13 Feb 2013 20:23:48 +0000 (20:23 +0000)]
Clean up LDV, no functionality change.
Remove dead functions: renameRegister
Move private member variables from LDV to Impl
Remove ssp/uwtable from testing case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175072
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Feb 2013 19:44:08 +0000 (19:44 +0000)]
Use 'RC_XBS' instead of 'RC_BUILDIT' to catch all times when it's built in the Apple way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175069
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 13 Feb 2013 19:22:27 +0000 (19:22 +0000)]
MIsched: HazardRecognizers are created for each DAG. Free them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175067
91177308-0d34-0410-b5e6-
96231b3b80d8
David Peixotto [Wed, 13 Feb 2013 19:21:47 +0000 (19:21 +0000)]
PR14992 - Tablegen incorrectly converts ARM tLDMIA_UPD pseudo to tLDMIA
Fixed bug in tablegen conversion when source pseudo instruction has
a different number of arguments than the destination instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175066
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 13 Feb 2013 18:38:58 +0000 (18:38 +0000)]
[ms-inline-asm] Use an array_pod_sort, rather than a std:sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175063
91177308-0d34-0410-b5e6-
96231b3b80d8
Pekka Jaaskelainen [Wed, 13 Feb 2013 18:08:57 +0000 (18:08 +0000)]
Metadata for annotating loops as parallel. The first consumer for this
metadata is the loop vectorizer.
See the documentation update for more info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175060
91177308-0d34-0410-b5e6-
96231b3b80d8
Krzysztof Parzyszek [Wed, 13 Feb 2013 17:40:07 +0000 (17:40 +0000)]
Add registration for PPC-specific passes to allow the IR to be dumped
via -print-after-all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175058
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Wed, 13 Feb 2013 13:40:35 +0000 (13:40 +0000)]
X86: Disable generation of rep;movsl when %esi is used as a base pointer.
This happens when there is both stack realignment and a dynamic alloca in the
function. If we overwrite %esi (rep;movsl uses fixed registers) we'll lose the
base pointer and the next register spill will write into oblivion.
Fixes PR15249 and unbreaks firefox on i386/freebsd. Mozilla uses dynamic allocas
and freebsd a 4 byte stack alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175057
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Wed, 13 Feb 2013 12:46:32 +0000 (12:46 +0000)]
Mention AArch64 in release notes for 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175055
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Wed, 13 Feb 2013 10:40:01 +0000 (10:40 +0000)]
Fix MSan annotations inclusion guard.
#cmakedefine does not behave the way I though it was.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175050
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Feb 2013 09:26:26 +0000 (09:26 +0000)]
Use array_pod_sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175048
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Wed, 13 Feb 2013 09:07:18 +0000 (09:07 +0000)]
Update phab docs to clarify how to accept a change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175047
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 13 Feb 2013 08:42:21 +0000 (08:42 +0000)]
Add some accessor and query methods for retrieving Attribute objects and such.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175046
91177308-0d34-0410-b5e6-
96231b3b80d8