Chandler Carruth [Wed, 24 Jul 2013 09:47:28 +0000 (09:47 +0000)]
Fix PR16687 where we were incorrectly promoting an alloca that had
pending speculation for a phi node. The problem here is that we were
using growth of the specluation set as an indicator of whether
speculation would occur, and if the phi node is already in the set we
don't see it grow. This is a symptom of the fact that this signal is
a total hack.
Unfortunately, I couldn't really come up with a non-hacky way of
signaling that promotion remains valid *after* speculation occurs, such
that we only speculate when all else looks good for promotion. In the
end, I went with at least a much more explicit approach of doing the
work of queuing inside the phi and select processing and setting
a preposterously named flag to convey that we're in the special state of
requiring speculating before promotion.
Thanks to Richard Trieu and Nick Lewycky for the excellent work reducing
a testcase for this from a pretty giant, nasty assert in a big
application. =] The testcase was excellent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187029
91177308-0d34-0410-b5e6-
96231b3b80d8
David Fang [Wed, 24 Jul 2013 07:52:16 +0000 (07:52 +0000)]
allow tests to run on powerpc-darwin8 again, checking for __ppc__
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187027
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 24 Jul 2013 07:33:14 +0000 (07:33 +0000)]
Split generated asm mnemonic matching table into a separate table for each asm variant.
This removes the need to store the asm variant in each row of the single table that existed before. Shaves ~16K off the size of X86AsmParser.o.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187026
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 24 Jul 2013 04:52:55 +0000 (04:52 +0000)]
Revert accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187021
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 24 Jul 2013 04:38:13 +0000 (04:38 +0000)]
Fix aliases for shrd/shld to handle Intel syntax properly. Also suppress them from being used by the asm printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187020
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Wed, 24 Jul 2013 01:58:40 +0000 (01:58 +0000)]
[mips] Use pristine object file while processing relocations.
Similar to ARM change r182800, dynamic linker will read bits/addends from
the original object rather than from the object that might have been patched
previously. For the purpose of relocations for MCJIT stubs on MIPS, we
internally use otherwise unused MIPS relocations.
The change also enables MCJIT unit tests for MIPS (EL/BE), and the following
two tests now pass:
- MCJITTest.return_global and
- MCJITTest.multiple_functions.
These issues have been tracked as Bug 16250.
Patch by Petar Jovanovic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187019
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 01:51:12 +0000 (01:51 +0000)]
Replace with a "null" RAUW with an assert since we'd actually like
to assume we're replacing. Clarify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187018
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 01:38:05 +0000 (01:38 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187017
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Wed, 24 Jul 2013 01:26:37 +0000 (01:26 +0000)]
Update testing cases to make them pass debug info verification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187016
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 01:21:02 +0000 (01:21 +0000)]
Remove unnecessary constructors as the default conversions will handle
all enumerated cases. Reformat the rest of the existing constructors to
match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187015
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 01:06:21 +0000 (01:06 +0000)]
More constructor cleanup.
Move to a single constructor with a default argument and avoid
the check and nullification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187014
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 00:54:39 +0000 (00:54 +0000)]
Collapse logic and move and reword comment for clarity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187013
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 00:54:36 +0000 (00:54 +0000)]
Add a fixme and reformat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187012
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 00:36:11 +0000 (00:36 +0000)]
Remove one more of these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187011
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 00:15:01 +0000 (00:15 +0000)]
Remove more dead/weird/misleading code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187010
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 24 Jul 2013 00:13:02 +0000 (00:13 +0000)]
Remove more seemingly unused code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187009
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 23:55:03 +0000 (23:55 +0000)]
DAGCombiner: Pass the correct type to TargetLowering::isF(Abs|Neg)Free
This commit also implements these functions for R600 and removes a test
case that was relying on the buggy behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187007
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 23:54:56 +0000 (23:54 +0000)]
R600: Treat CONSTANT_ADDRESS loads like GLOBAL_ADDRESS loads when necessary
These are really the same address space in hardware. The only
difference is that CONSTANT_ADDRESS uses a special cache for faster
access. When we are unable to use the constant kcache for some reason
(e.g. smaller types or lack of indirect addressing) then the instruction
selector must use GLOBAL_ADDRESS loads instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187006
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 23 Jul 2013 23:10:00 +0000 (23:10 +0000)]
Debug Info: improve the Finder.
Improve the Finder to handle context of a DIVariable.
If Scope is a DICompileUnit, add it to the list of CUs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187003
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 23 Jul 2013 23:07:38 +0000 (23:07 +0000)]
Debug Info: clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187002
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 23 Jul 2013 22:50:42 +0000 (22:50 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187001
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Tue, 23 Jul 2013 22:34:47 +0000 (22:34 +0000)]
[ARM][ISel] Improve the lowering of vector loads.
When vectors are built from a single value, the ARM lowering issues a
scalar_to_vector node.
This node is then always morphed into a move from the general purpose unit to
the vector unit.
When the value comes from a load, this can be simplified into a vector load to
the right lane.
This patch changes the lowering of insert_vector_elt to expose a vector
friendly pattern in this situation.
This is a step toward fixing <rdar://problem/
14170854>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186999
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 23 Jul 2013 22:29:19 +0000 (22:29 +0000)]
Keep similar classes near each other. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186998
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 23 Jul 2013 22:20:57 +0000 (22:20 +0000)]
Fix spelling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186997
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 23 Jul 2013 22:16:44 +0000 (22:16 +0000)]
80-column.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186995
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 23 Jul 2013 22:16:41 +0000 (22:16 +0000)]
Reformat options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186994
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 23 Jul 2013 21:05:21 +0000 (21:05 +0000)]
Expand the comment on getOpenFileSlice a bit for more details and consistency
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186987
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 23 Jul 2013 20:58:51 +0000 (20:58 +0000)]
Refactor the unit test for MemoryBuffer::getOpenFileSlice
Run in two different modes: with and without reopening the temporary file
between creating it and mapping it with MemoryBuffer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186986
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 23 Jul 2013 20:39:32 +0000 (20:39 +0000)]
Debug Info: code cleanup, use getNodeField if possible.
Use getNodeField to access a field as a MDNode.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186985
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 20:25:01 +0000 (20:25 +0000)]
Split getOpenFile into getOpenFile and getOpenFileSlice.
The main observation is that we never need both the filesize and the map size.
When mapping a slice of a file, it doesn't make sense to request a null
terminator and that would be the only case where the filesize would be used.
There are other cleanups that should be done in this area:
* A client should not have to pass the size (even an explicit -1) to say if
it wants a null terminator or not, so we should probably swap the argument
order.
* The default should be to not require a null terminator. Very few clients
require this, but many end up asking for it just because it is the default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186984
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 18:44:31 +0000 (18:44 +0000)]
Fix use of the getOpenFile api.
The gold plugin was passing the desired map size as the file size. This was
working for two reasons:
* Recent version of gold provide the get_view callback, so this code was not
used.
* In older versions, getOpenFile was called, but the file size is never used
if we don't require null terminated buffers and map size defaults to the
file size.
Thanks to Eli Bendersky for noticing this.
I will try to make this api a bit less error prone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186978
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 23 Jul 2013 18:14:25 +0000 (18:14 +0000)]
DebugInfo Verifier: verify the actual type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186972
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 23 Jul 2013 17:44:11 +0000 (17:44 +0000)]
Revert "Remove use of asymmetric std::lower_bound comparator."
This reverts commit r185676.
Originally done because of VS 2008.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186969
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 23 Jul 2013 17:44:01 +0000 (17:44 +0000)]
docs: Update old VS 2008 references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186968
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 23 Jul 2013 17:32:57 +0000 (17:32 +0000)]
docs: cleanup VS 2008 release note.
Remove trailing ')'. Sorry about all that, should be good now!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186965
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 23 Jul 2013 17:28:35 +0000 (17:28 +0000)]
docs: Correct reST link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186963
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Tue, 23 Jul 2013 17:25:26 +0000 (17:25 +0000)]
Update docs to drop support for VS 2008.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186961
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 13:18:20 +0000 (13:18 +0000)]
Add not so that these tests pass with pipefail enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186939
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 12:31:37 +0000 (12:31 +0000)]
Add -disable-debug-info-verifier.
Found while testing with pipefail enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186937
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 11:02:16 +0000 (11:02 +0000)]
Fix the build in c++03 mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186935
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 23 Jul 2013 10:47:01 +0000 (10:47 +0000)]
Add an initial implementation of archive symbol table generation.
The symbol table has forward references in the file. Instead of allocating
a temporary buffer or counting the size and then writing, this implementation
writes a dummy value first and patches it once the final value is known.
There is room for performance improvement. I will implement them as soon as I
get some other features (like a ranlib mode) in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186934
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 06:45:34 +0000 (06:45 +0000)]
Remove some errant space charcters in mnemonic strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186932
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Tue, 23 Jul 2013 06:44:34 +0000 (06:44 +0000)]
remove unnecessary space
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186931
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 23 Jul 2013 06:41:51 +0000 (06:41 +0000)]
llvm/test/DebugInfo/X86/dbg-value-range.ll: Add -disable-debug-info-verifier, too, since r186902.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186930
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 06:27:36 +0000 (06:27 +0000)]
Remove 'else' after 'return'. No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186929
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 06:25:00 +0000 (06:25 +0000)]
Remove trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186928
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 01:50:47 +0000 (01:50 +0000)]
Don't let x86 asm printer use the no operand movsd alias. It should use the normal movsl instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186924
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:49 +0000 (01:48 +0000)]
R600: Add support for 24-bit MAD instructions
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186923
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:42 +0000 (01:48 +0000)]
R600: Add support for 24-bit MUL instructions
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186922
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:35 +0000 (01:48 +0000)]
R600: Improve support for < 32-bit loads
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186921
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:29 +0000 (01:48 +0000)]
R600: Rename AMDILISelDAGToDAG.cpp -> AMDGPUISelDAGToDAG.cpp
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186920
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:24 +0000 (01:48 +0000)]
R600: Move CONST_ADDRESS folding into AMDGPUDAGToDAGISel::Select()
This increases the number of opportunites we have for folding. With the
previous implementation we were unable to fold into any instructions
other than the first when multiple instructions were selected from a
single SDNode.
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186919
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:18 +0000 (01:48 +0000)]
R600: Use KCache for kernel arguments
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186918
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:08 +0000 (01:48 +0000)]
R600: Simplify assembly for KCache registers using the TableGen !add operator
Before:
MOV * T0.W, KC0[131-128].Y
After:
MOV * T0.W, KC0[3].Y
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186917
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:48:05 +0000 (01:48 +0000)]
R600: Use the same compute kernel calling convention for all GPUs
A side-effect of this is that now the compiler expects kernel arguments
to be 4-byte aligned.
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186916
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:47:58 +0000 (01:47 +0000)]
R600: Use correct LoadExtType when lowering kernel arguments
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186915
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:47:52 +0000 (01:47 +0000)]
R600: Clean up extended load patterns
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186914
91177308-0d34-0410-b5e6-
96231b3b80d8
Tom Stellard [Tue, 23 Jul 2013 01:47:46 +0000 (01:47 +0000)]
R600: Expand vector FNEG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186913
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 01:29:37 +0000 (01:29 +0000)]
Revert r186907 to fix bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186910
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 01:21:36 +0000 (01:21 +0000)]
Don't let x86 asm printer use the no operand movsd alias. It should use the normal movsl instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186907
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 00:56:15 +0000 (00:56 +0000)]
Add aliases to map 'imm, mem' form of x86 bts/btr/btc without a size suffix to their 32-bit forms.
This makes them consistent with 'bt' which already had this handling. gas has the same behavior. There have been discussions on the mailing list about determining size based on the immediate, but my goal here was just to remove the inconsistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186904
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Tue, 23 Jul 2013 00:22:51 +0000 (00:22 +0000)]
Debug Info Finder: use processDeclare and processValue to list debug info
MDNodes used by DbgDeclareInst and DbgValueInst.
Another 16 testing cases failed and they are disabled with
-disable-debug-info-verifier.
A total of 34 cases are disabled with -disable-debug-info-verifier and will be
corrected.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186902
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 00:15:19 +0000 (00:15 +0000)]
Explicitly don't let the asm printer use the clrb/w/l aliases for xor %reg, %reg.
It only didn't use it before because it seems InstAlias handling in the asm printer fails to count tied operands so it tried to find an xor with 2 operands instead of the 3 it wfails to count tied.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186900
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 23 Jul 2013 00:03:33 +0000 (00:03 +0000)]
Suppress argumentless aliases for some x86 FP operations from being used by the asm writer. Prefer to use the explicit %st(1) form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186897
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 22 Jul 2013 23:52:23 +0000 (23:52 +0000)]
Fix typo (ponted -> pointed)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186896
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 22 Jul 2013 23:38:27 +0000 (23:38 +0000)]
Remove extraneous null statement. No functionality change!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186893
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Mon, 22 Jul 2013 23:38:16 +0000 (23:38 +0000)]
Use switch instead of if. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186892
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Mon, 22 Jul 2013 23:16:36 +0000 (23:16 +0000)]
Remove trailing spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186890
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Mon, 22 Jul 2013 22:46:21 +0000 (22:46 +0000)]
Add a simple unit test for MemoryBuffer::getOpenFile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186887
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Jul 2013 22:25:09 +0000 (22:25 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186886
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Jul 2013 22:25:07 +0000 (22:25 +0000)]
80-column tidying. Formatting choices by clang-format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186885
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 22 Jul 2013 22:18:07 +0000 (22:18 +0000)]
When we vectorize across multiple basic blocks we may vectorize PHINodes that create a cycle. We already break the cycle on phi-nodes, but arithmetic operations are still uplicated. This patch adds code that checks if the operation that we are vectorizing was vectorized during the visit of the operands and uses this value if it can.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186883
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Mon, 22 Jul 2013 22:10:43 +0000 (22:10 +0000)]
OldPtr is llvm::Instruction. Remove unneeded cast<>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186880
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Mon, 22 Jul 2013 21:29:28 +0000 (21:29 +0000)]
Silence gcc warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186879
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 22 Jul 2013 21:25:31 +0000 (21:25 +0000)]
Fix the move to/from accumulator register instructions that use a full 64-bit
absolute address encoded in the instruction.
rdar://
8612627 and rdar://
14299221
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186878
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Mon, 22 Jul 2013 21:11:30 +0000 (21:11 +0000)]
Change tabs to spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186877
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakub Staszak [Mon, 22 Jul 2013 21:10:42 +0000 (21:10 +0000)]
Fix typo in test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186876
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 22 Jul 2013 21:05:47 +0000 (21:05 +0000)]
[stackprotector] Changed isNoopBitcast/sameNoopInput to take TargetLoweringBase instead of TargetLowering.
Both functions only use functionality from TargetLoweringBase.
rdar://
13935163
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186874
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 22 Jul 2013 20:46:37 +0000 (20:46 +0000)]
Recommit r186813: More Intel syntax alias fixes. With the addition of suppressing some of the aliases from being emitted by the asm printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186869
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Mon, 22 Jul 2013 20:44:11 +0000 (20:44 +0000)]
[stackprotector] Refactored ssp prologue creation code into its own helper function.
No functionality change.
rdar://
13935163
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186868
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Mon, 22 Jul 2013 20:28:53 +0000 (20:28 +0000)]
Debug Info Finder: add processScope to actually handle the Scope.
Instead of just adding the scope to the list, we actually handle the scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186867
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 22 Jul 2013 20:15:21 +0000 (20:15 +0000)]
Recommit r186217 with testcase fix:
Use the function attributes to pass along the stack protector buffer size.
Now that we have robust function attributes, don't use a command line option to
specify the stack protecto buffer size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186863
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 22 Jul 2013 19:30:38 +0000 (19:30 +0000)]
[mips] Fix MipsAsmParser::parseCCRRegs.
Enable parsing all 32 floating point control registers $0-31 and stop trying to
parse floating point condition code register $fcc0. Also, return ParseFail if
the operand being parsed is not in the expected format.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186861
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Jul 2013 19:24:34 +0000 (19:24 +0000)]
Mark ELF's first symbol as format specific so that llvm-nm ignores it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186860
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 22 Jul 2013 18:59:58 +0000 (18:59 +0000)]
Fix spelling and grammar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186858
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 22 Jul 2013 18:58:53 +0000 (18:58 +0000)]
Fix missing const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186857
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 22 Jul 2013 18:52:22 +0000 (18:52 +0000)]
[mips] Use ADDu instead of OR to copy general purpose registers. Also, delete
the InstAlias pattern which maps "move" to OR to resolve ambiguity in
MatchTable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186855
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Kaylor [Mon, 22 Jul 2013 18:47:24 +0000 (18:47 +0000)]
Adding example source to support MCJIT/Kaleidoscope blog posts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186854
91177308-0d34-0410-b5e6-
96231b3b80d8
Shuxin Yang [Mon, 22 Jul 2013 18:40:34 +0000 (18:40 +0000)]
Initialize/Register LTO passes to enable flags like -print-after=<lto-pass>
There already have two "dead" functions, initialize{IPO|IPA}, defined for
similar purpose. I decide not to call these two functions for two reasons:
o. they don't cover all LTO passes (which will soon be separated into IPO
and post-IPO passes)
o. We have not yet figured out the right passes and the ordering for IPO
and post-IPO stages, meaning this change is only for the time being.
Since LTO passes are registered, we are now able to print IR before and
after particular point.
For OSX users:
--------------
"...-Wl,-mllvm -Wl,-print-after=<pass-name>" will print IR after the
specified pass.
For Other UNIX with GNU gold linker:
------------------------------------
"-Wl,-plugin-opt=-print-after=<pass-name>" should work.
(NOTE: no need for "-Wl,-mllvm")
Strip "-Wl," if flags are fed directly to linker instead of clang/clang++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186853
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Jul 2013 18:26:18 +0000 (18:26 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186852
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 22 Jul 2013 18:26:15 +0000 (18:26 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186851
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 22 Jul 2013 17:45:55 +0000 (17:45 +0000)]
MC: mayAffectControlFlow() handling for variadic instructions.
Variadic MC instructions don't note whether the variable operands
are uses or defs, so mayAffectControlFlow() must conservatively
assume they are defs and return true if the PC is in the operand
list.
rdar://
14488628
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186846
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Mon, 22 Jul 2013 17:10:48 +0000 (17:10 +0000)]
Fix an obvious typo in the loop vectorizer where the cost model uses the wrong variable. The variable BlockCost is ignored.
We don't have tests for the effect of if-conversion loops because it requires a big test (that includes if-converted loops) and it is difficult to find and balance a loop to do the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186845
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Mon, 22 Jul 2013 17:04:40 +0000 (17:04 +0000)]
[NVPTX] Remove unused prototypes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186844
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 22 Jul 2013 16:18:13 +0000 (16:18 +0000)]
Option parsing: allow aliases in groups
Option aliases in option groups were previously disallowed by an assert.
As far as I can tell, there was no technical reason for this, and I would
like to be able to put cl.exe compatible options in their own group for Clang,
so let's change the assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186838
91177308-0d34-0410-b5e6-
96231b3b80d8
Mihai Popa [Mon, 22 Jul 2013 15:49:36 +0000 (15:49 +0000)]
This adds range checking for "ldr Rn, [pc, #imm]" Thumb
instructions. With this patch:
1. ldr.n is recognized as mnemonic for the short encoding
2. ldr.w is recognized as menmonic for the long encoding
3. ldr will map to either short or long encodings depending on the size of the offset
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186831
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Jul 2013 15:11:51 +0000 (15:11 +0000)]
Replace archive members in the old position.
This matches gnu archive behavior and since archive member order can change
which member is used, not changing the order on replacement looks like the
right thing to do.
This patch also refactors the logic for which archive member to keep and
whether to move it to a helper function (computeInsertAction). The
nesting in computeNewArchiveMembers was getting a bit confusing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186829
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 22 Jul 2013 12:41:04 +0000 (12:41 +0000)]
Don't depend on a llvm-ar specific behavior.
GNU ar when not given the a or b modifiers replaces archive members in the
same location of the old ones. I am about to implement that in llvm-ar. For
now, just don't depend on the current llvm-ar behavior on this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186823
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Mon, 22 Jul 2013 12:18:04 +0000 (12:18 +0000)]
[NVPTX] Use approximate FP ops when unsafe-fp-math is used, and append
.ftz to instructions if the nvptx-f32ftz attribute is set to "true"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186820
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Mon, 22 Jul 2013 11:02:32 +0000 (11:02 +0000)]
Revert "More Intel syntax alias fixes."
This reverts commit r186813, which broke the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186818
91177308-0d34-0410-b5e6-
96231b3b80d8