Nadav Rotem [Thu, 20 Jun 2013 16:38:05 +0000 (16:38 +0000)]
Change the debug type to match the debug type that is used by vecutils.cpp.
This change makes it easier to filter debug messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184440
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Thu, 20 Jun 2013 16:38:00 +0000 (16:38 +0000)]
[PowerPC] Add missing build dependency
This (hopefully) fixes build failures resulting from r184436;
the PowerPC asm parser now depends on PowerPC target expresssions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184439
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Thu, 20 Jun 2013 16:24:17 +0000 (16:24 +0000)]
[MC] Support @ variants with directional labels
The assembler parser common code supports recognizing symbol variants
using the @ modifer. On PowerPC, it should also be possible to use
(some of) those modifiers with directional labels, like "1f@l".
This patch adds support for accepting symbol variants on directional
labels as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184437
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Thu, 20 Jun 2013 16:23:52 +0000 (16:23 +0000)]
[PowerPC] Optimize @ha/@l constructs
This patch adds support for having the assembler optimize fixups
to constructs like "symbol@ha" or "symbol@l" if "symbol" can be
resolved at assembler time.
This optimization is already present in the PPCMCExpr.cpp code
for handling PPC_HA16/PPC_LO16 target expressions. However,
those target expression were used only on Darwin targets.
This patch changes target expression code so that they are
usable also with the GNU assembler (using the @ha / @l syntax
instead of the ha16() / lo16() syntax), and changes the
MCInst lowering code to generate those target expressions
where appropriate.
It also changes the asm parser to generate HA16/LO16 target
expressions when parsing assembler source that uses the
@ha / @l modifiers. The effect is that now the above-
mentioned optimization automatically becomes available
for those situations too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184436
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Thu, 20 Jun 2013 16:15:12 +0000 (16:15 +0000)]
[PowerPC] Support compare mnemonics with implied CR0
Just like for branch mnemonics (where support was recently added), the
assembler is supposed to support extended mnemonics for the compare
instructions where no condition register is specified explicitly
(and CR0 is assumed implicitly).
This patch adds support for those extended compare mnemonics.
Index: llvm-head/test/MC/PowerPC/ppc64-encoding-ext.s
===================================================================
--- llvm-head.orig/test/MC/PowerPC/ppc64-encoding-ext.s
+++ llvm-head/test/MC/PowerPC/ppc64-encoding-ext.s
@@ -449,21 +449,37 @@
# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
cmpdi 2, 3, 128
+# CHECK: cmpdi 0, 3, 128 # encoding: [0x2c,0x23,0x00,0x80]
+ cmpdi 3, 128
# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
cmpd 2, 3, 4
+# CHECK: cmpd 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x00]
+ cmpd 3, 4
# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
cmpldi 2, 3, 128
+# CHECK: cmpldi 0, 3, 128 # encoding: [0x28,0x23,0x00,0x80]
+ cmpldi 3, 128
# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
cmpld 2, 3, 4
+# CHECK: cmpld 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x40]
+ cmpld 3, 4
# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
cmpwi 2, 3, 128
+# CHECK: cmpwi 0, 3, 128 # encoding: [0x2c,0x03,0x00,0x80]
+ cmpwi 3, 128
# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
cmpw 2, 3, 4
+# CHECK: cmpw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x00]
+ cmpw 3, 4
# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
cmplwi 2, 3, 128
+# CHECK: cmplwi 0, 3, 128 # encoding: [0x28,0x03,0x00,0x80]
+ cmplwi 3, 128
# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
cmplw 2, 3, 4
+# CHECK: cmplw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x40]
+ cmplw 3, 4
# FIXME: Trap mnemonics
Index: llvm-head/lib/Target/PowerPC/PPCInstrInfo.td
===================================================================
--- llvm-head.orig/lib/Target/PowerPC/PPCInstrInfo.td
+++ llvm-head/lib/Target/PowerPC/PPCInstrInfo.td
@@ -2201,3 +2201,12 @@ defm : BranchExtendedMnemonic<"ne", 68>;
defm : BranchExtendedMnemonic<"nu", 100>;
defm : BranchExtendedMnemonic<"ns", 100>;
+def : InstAlias<"cmpwi $rA, $imm", (CMPWI CR0, gprc:$rA, s16imm:$imm)>;
+def : InstAlias<"cmpw $rA, $rB", (CMPW CR0, gprc:$rA, gprc:$rB)>;
+def : InstAlias<"cmplwi $rA, $imm", (CMPLWI CR0, gprc:$rA, u16imm:$imm)>;
+def : InstAlias<"cmplw $rA, $rB", (CMPLW CR0, gprc:$rA, gprc:$rB)>;
+def : InstAlias<"cmpdi $rA, $imm", (CMPDI CR0, g8rc:$rA, s16imm:$imm)>;
+def : InstAlias<"cmpd $rA, $rB", (CMPD CR0, g8rc:$rA, g8rc:$rB)>;
+def : InstAlias<"cmpldi $rA, $imm", (CMPLDI CR0, g8rc:$rA, u16imm:$imm)>;
+def : InstAlias<"cmpld $rA, $rB", (CMPLD CR0, g8rc:$rA, g8rc:$rB)>;
+
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184435
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 20 Jun 2013 15:56:05 +0000 (15:56 +0000)]
Fix get_magic() handling of short reads.
PR16389
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184434
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 15:20:11 +0000 (15:20 +0000)]
Remove the transitional GetUniqueID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184433
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 15:06:35 +0000 (15:06 +0000)]
Rename fs::GetUniqueID to fs::getUniqueID to match the style guide.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184431
91177308-0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Thu, 20 Jun 2013 14:19:10 +0000 (14:19 +0000)]
Remove MSan hack that is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184428
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefanus Du Toit [Thu, 20 Jun 2013 14:02:44 +0000 (14:02 +0000)]
Fix typos "metatadata" -> "metadata" in the LangRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184426
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 13:44:49 +0000 (13:44 +0000)]
Make sure ar is creating a new file instead of updating an existing one.
Should fix the bots that are seeing a corrupted file from a previous run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184424
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 13:41:51 +0000 (13:41 +0000)]
Add r184420 back, but also handle long file names.
Original message:
Don't include directory names in archives.
This matches the behavior of both gnu and os x versions of ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184423
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 13:23:48 +0000 (13:23 +0000)]
Revert "Don't include directory names in archives."
This reverts commit 184420.
Investigating the bot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184421
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 13:16:44 +0000 (13:16 +0000)]
Don't include directory names in archives.
This matches the behavior of both gnu and os x versions of ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184420
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 13:00:30 +0000 (13:00 +0000)]
Remove remaining bits of the old LLVM specific symtab handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184418
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 12:45:47 +0000 (12:45 +0000)]
Remove more unused functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184416
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 12:42:00 +0000 (12:42 +0000)]
Remove unused methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184415
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 12:04:39 +0000 (12:04 +0000)]
Use the simpler sys::fs::exists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184413
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 20 Jun 2013 11:59:19 +0000 (11:59 +0000)]
Convert a use of sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184412
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Thu, 20 Jun 2013 11:21:49 +0000 (11:21 +0000)]
Optimize register parsing for MipsAsmParser. Allow symbolic aliases for FPU registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184411
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 20 Jun 2013 06:51:06 +0000 (06:51 +0000)]
Remove static, because it was messing everything up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184400
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Thu, 20 Jun 2013 00:25:24 +0000 (00:25 +0000)]
DebugInfo: don't use location lists when the location covers the whole function anyway
Fix up three tests - one that was relying on abbreviation number,
another relying on a location list in this case (& testing raw asm,
changed that to use dwarfdump on the debug_info now that that's where
the location is), and another which was added in r184368 - exposing a
bug in that fix that is exposed when we emit the location inline rather
than through a location list. Fix that bug while I'm here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184387
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 19 Jun 2013 22:53:45 +0000 (22:53 +0000)]
[Support/CrashRecoveryContext] Make sure CrashRecoveryContext does not clear the thread-local "CurrentContext"
in the "parent" thread, when we are using CrashRecoveryContext::RunSafelyOnThread.
When using CrashRecoveryContext::RunSafelyOnThread, we would set a CrashRecoveryContextImpl* to a thread-local variable
for the "child" thread, but CrashRecoveryContext would erroneously clear it in the "parent" thread.
The result was that if CrashRecoveryContext::RunSafelyOnThread was called again in the "child" thread it would mess up
crash-recovery for its parent.
A test for this will be added in the clang repository.
rdar://
14204560
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184380
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 22:16:33 +0000 (22:16 +0000)]
This is now a duplicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184376
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 22:16:11 +0000 (22:16 +0000)]
Make the '==' operator inline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184375
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 22:12:11 +0000 (22:12 +0000)]
Make this static inline to avoid duplicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184374
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 22:09:25 +0000 (22:09 +0000)]
Make the comparison operators non-member functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184373
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 19 Jun 2013 22:00:13 +0000 (22:00 +0000)]
Spelling correction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184370
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 21:59:00 +0000 (21:59 +0000)]
Don't pass in the TargetInstrInfo into the register info object. It doesn't use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184369
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 19 Jun 2013 21:55:13 +0000 (21:55 +0000)]
DebugInfo: PR14763/r183329 correct the location of indirect parameters
We had been papering over a problem with location info for non-trivial
types passed by value by emitting their type as references (this caused
the debugger to interpret the location information correctly, but broke
the type of the function). r183329 corrected the type information but
lead to the debugger interpreting the pointer parameter as the value -
the debug info describing the location needed an extra dereference.
Use a new flag in DIVariable to add the extra indirection (either by
promoting an existing DW_OP_reg (parameter passed in a register) to
DW_OP_breg + 0 or by adding DW_OP_deref to an existing DW_OP_breg + n
(parameter passed on the stack).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184368
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 19 Jun 2013 21:53:45 +0000 (21:53 +0000)]
[APFloat] Changed APFloat::isNormal => APFloat::isFiniteNonZero for all tests in unittests.
I forgot to to do this in r184356. The only references were in APFloatTest.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184366
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 19 Jun 2013 21:52:48 +0000 (21:52 +0000)]
DebugInfo: Specify that a value is stored indirectly
This is a precursor to fix a regression caused by PR14763/r183329 where
the location of a non-trivial pass-by-value parameter ends up
incorrectly referring directly to the parameter (a pointer) rather than
the object pointed to by the pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184365
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 19 Jun 2013 21:42:05 +0000 (21:42 +0000)]
Spell correct (s/begining/beginning/)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184362
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Wed, 19 Jun 2013 21:37:13 +0000 (21:37 +0000)]
llvm-dwarfdump: Add support for dumping the .debug_loc section
This is a basic implementation - we still don't have any support (that I
know of) for dumping DWARF expressions in a meaningful way, so the
location information itself is just printed as a sequence of bytes as we
do elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184361
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 21:36:55 +0000 (21:36 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184360
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 21:33:52 +0000 (21:33 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184359
91177308-0d34-0410-b5e6-
96231b3b80d8
Ulrich Weigand [Wed, 19 Jun 2013 21:27:27 +0000 (21:27 +0000)]
[MC/DWARF] Generate multiple .debug_line entries for adjacent .loc directives
The compiler occasionally generates multiple .loc directives in a row
(at the same instruction address). These need to be transformed into
multple actual .debug_line table entries, since they are used to signal
certain information to the debugger (e.g. if the opening brace of a
function body is on the same line as the declaration).
The MCAsmStreamer version of EmitDwarfLocDirective handles this
correctly by emitting a .loc directive every time it is called.
However, the MCObjectStream version simply defaults to recording
the information and emitting only a single table entry later,
e.g. when EmitInstruction is called.
This patch introduces a MCAsmStreamer::EmitDwarfLocDirective
version that emits a line table entry for a .loc directive
that may already be pending before recording the new directive.
(This is similar to how this is handled in GNU as.)
With this patch (and the code alignment factor patch) applied,
I'm now getting identical DWARF .debug sections for all test-suite
object files on PowerPC for the internal and the external assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184357
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 19 Jun 2013 21:23:18 +0000 (21:23 +0000)]
[APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero.
Turns out all the references were in llvm and not in clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184356
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 21:21:43 +0000 (21:21 +0000)]
Really fix the missing header :-(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184355
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 21:20:41 +0000 (21:20 +0000)]
Add missing include found by the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184354
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 21:13:59 +0000 (21:13 +0000)]
Remove last use of PathV1.h from Archive.h
Store the individual fields we need instead of a sys::FileStatus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184353
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 21:07:11 +0000 (21:07 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184352
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 19 Jun 2013 21:03:50 +0000 (21:03 +0000)]
Modified the implementation of fs::GetUniqueID on Windows such that it actually finds a unique identifier for a file. Also adds unit tests for GetUniqueID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184351
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 19 Jun 2013 21:00:17 +0000 (21:00 +0000)]
[APFloat] Added isFiniteNonZero predicate.
This is the first patch in a series of patches to rename isNormal =>
isFiniteNonZero and isIEEENormal => isNormal. In order to prevent careless
errors on my part the overall plan is:
1. Add the isFiniteNonZero predicate with tests. I can do this in a method
independent of isNormal. (This step is this patch).
2. Convert all references to isNormal with isFiniteNonZero. My plan is to
comment out isNormal locally and continually convert isNormal references =>
isFiniteNonZero until llvm/clang compiles.
3. Remove old isNormal and rename isIEEENormal to isNormal.
4. Look through all of said references from patch 2 and see if we can simplify
them by using the new isNormal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184350
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 20:51:24 +0000 (20:51 +0000)]
Access the TargetLoweringInfo from the TargetMachine object instead of caching it. The TLI may change between functions. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184349
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 20:50:12 +0000 (20:50 +0000)]
Add operator!= as the compliment to operator==. This is for a future change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184348
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 20:32:16 +0000 (20:32 +0000)]
Don't cache the TLI object since we have access to it through TargetMachine already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184346
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 19 Jun 2013 20:31:54 +0000 (20:31 +0000)]
[APFloat] Expose isSmallest/isLargest as public methods.
I have had several requests to expose these two methods as public for various
potential optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184345
91177308-0d34-0410-b5e6-
96231b3b80d8
Ahmed Bougacha [Wed, 19 Jun 2013 20:18:59 +0000 (20:18 +0000)]
Allow creation of single-byte MCAtoms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184344
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Wed, 19 Jun 2013 20:18:24 +0000 (20:18 +0000)]
Move StructurizeCFG out of R600 to generic Transforms.
Register it with PassManager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184343
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Wed, 19 Jun 2013 19:59:41 +0000 (19:59 +0000)]
LSR: Fix the parameters used to compute the scaling factor cost.
Prior to this change, the considered addressing modes may be invalid since the
maximum and minimum offsets were not taking into account.
This was causing an assertion failure.
The added test case exercices that behavior.
<rdar://problem/
14199725> Assertion failed: (CurScaleCost >= 0 && "Legal
addressing mode has an illegal cost!")
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184341
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 19 Jun 2013 19:26:44 +0000 (19:26 +0000)]
Add unit test to test a trivial verifier check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184338
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 19:17:15 +0000 (19:17 +0000)]
Always set the mode.
This matches GNU ar behavior. Also remove the now unused getFileStatus method.
Not sure how to add a test, it would have to run ls -l or something like that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184337
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 17:49:07 +0000 (17:49 +0000)]
Remove more uses of sys::Path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184328
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 19 Jun 2013 17:33:16 +0000 (17:33 +0000)]
SLPVectorizer: handle scalars that are extracted from vectors (using ExtractElementInst).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184325
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 16:47:34 +0000 (16:47 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184320
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 16:16:13 +0000 (16:16 +0000)]
Another attempt at fixing the bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184318
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 19 Jun 2013 15:57:29 +0000 (15:57 +0000)]
SLPVectorizer: start constructing chains at stores that are not power of two.
The type <3 x i8> is a common in graphics and we want to be able to vectorize it.
This changes accelerates bullet by 12% and 471_omnetpp by 5%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184317
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 15:56:53 +0000 (15:56 +0000)]
Attempt at fixing some bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184316
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 15:45:37 +0000 (15:45 +0000)]
Reduce sys::Path usage in llvm-ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184315
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 15:32:37 +0000 (15:32 +0000)]
Remove Path::getDirectoryContents.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184311
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 14:58:16 +0000 (14:58 +0000)]
Remove the 'R' modifier.
It is not present in GNU or OS X versions and doesn't make a lot of sense
for llvm-ar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184306
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 14:25:38 +0000 (14:25 +0000)]
Remove Path::isObjectFile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184305
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 19 Jun 2013 13:25:31 +0000 (13:25 +0000)]
Remove Path::canExecute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184298
91177308-0d34-0410-b5e6-
96231b3b80d8
Vladimir Medic [Wed, 19 Jun 2013 10:14:36 +0000 (10:14 +0000)]
The RenderMethod field in RegisterOperand class sets the name of the method on the target specific operand to call to add the target specific operand to an MCInst. This patch defines RenderMethod for mips RegisterOperand classes and removes redundant code from MipsAsmParser.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184292
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 19 Jun 2013 09:55:05 +0000 (09:55 +0000)]
MachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use std::string instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184291
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Wed, 19 Jun 2013 07:34:21 +0000 (07:34 +0000)]
Fixed comment typo that causes the given comment to actually make sense.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184286
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 19 Jun 2013 05:49:52 +0000 (05:49 +0000)]
SLPVectorizer: vectorize compares and selects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184282
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Wed, 19 Jun 2013 05:47:33 +0000 (05:47 +0000)]
Document the return value and fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184281
91177308-0d34-0410-b5e6-
96231b3b80d8
Wan Xiaofei [Wed, 19 Jun 2013 02:26:00 +0000 (02:26 +0000)]
Test commit access.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184278
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 01:13:28 +0000 (01:13 +0000)]
Remove `using namespace` and use explicit qualification.
There were only two places it was actually making anything shorter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184273
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 01:10:58 +0000 (01:10 +0000)]
Remove spurious space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184272
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 01:10:11 +0000 (01:10 +0000)]
Remove unused parameter.
Not sure why we weren't catching this with -Wunused-parameter...
Spotted by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184271
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 00:55:32 +0000 (00:55 +0000)]
[yaml2obj][ELF] Beef up this test a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184269
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 00:55:28 +0000 (00:55 +0000)]
[yaml2obj][ELF] Support ELFOSABI_* enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184268
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 00:55:23 +0000 (00:55 +0000)]
There is no ELF ABI version enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184267
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Wed, 19 Jun 2013 00:11:59 +0000 (00:11 +0000)]
[yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184263
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 18 Jun 2013 23:37:58 +0000 (23:37 +0000)]
Use GetUnderlyingObject instead of custom function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184261
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Tue, 18 Jun 2013 23:37:23 +0000 (23:37 +0000)]
[yaml2obj][ELF] Don't monkeypatch the YAML sections.
Previously, we would monkeypatch the vector of YAML::Section's in order
to ensure that the SHT_NULL entry is present. Now we just add it
unconditionally.
The proliferation of small numerical adjustments is beginning to
frighten me, but I can't think of a way having a single point of truth
for them without introducing a whole new layer of data structures (i.e.
lots of code and complexity) between the YAML and binary ELF formats.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184260
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Tue, 18 Jun 2013 23:19:17 +0000 (23:19 +0000)]
[yaml2obj][ELF] Ensure STN_UNDEF entry is present.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184258
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Tue, 18 Jun 2013 23:14:03 +0000 (23:14 +0000)]
[yaml2obj][ELF] Rudimentary symbol table support.
Currently, we only output the name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184255
91177308-0d34-0410-b5e6-
96231b3b80d8
JF Bastien [Tue, 18 Jun 2013 23:07:16 +0000 (23:07 +0000)]
Small correction to unordered memory code generation of ARM LDRD
The information was correct pre-LPAE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184253
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Jun 2013 22:09:36 +0000 (22:09 +0000)]
Identify me on IRC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184247
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 18 Jun 2013 21:49:21 +0000 (21:49 +0000)]
ARM: Add optional datatype suffix to NEON mvn asm syntax.
rdar://
14194152
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184244
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Silva [Tue, 18 Jun 2013 21:37:50 +0000 (21:37 +0000)]
[yaml2obj][ELF] Add dummy .strtab section.
This will be needed later for holding symbol names, due to the libObject
issue mentioned in the commit message of r184161.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184242
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 18 Jun 2013 21:27:00 +0000 (21:27 +0000)]
We want a string representation of the attribute, not the kind as a string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184239
91177308-0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 18 Jun 2013 21:16:53 +0000 (21:16 +0000)]
AArch64: remove accidental test output file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184236
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 21:10:03 +0000 (21:10 +0000)]
Remove Path::canWrite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184235
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 20:56:38 +0000 (20:56 +0000)]
Add a can_write function to PathV2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184233
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 18 Jun 2013 20:49:45 +0000 (20:49 +0000)]
[ARMTargetLowering] ARMISD::{SUB,ADD}{C,E} second result is a boolean implying that upper bits are always 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184231
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael Gottesman [Tue, 18 Jun 2013 20:49:40 +0000 (20:49 +0000)]
Converted an overly aggressive assert to a conditional check in AddCombineTo64bitMLAL.
Said assert assumes that ADDC will always have a glue node as its second
argument and is checked before we even know that we are actually performing the
relevant MLAL optimization. This is incorrect since on ARM we *CAN* codegen ADDC
with a use list based second argument. Thus to have both effects, I converted
the assert to a conditional check which if it fails we do not perform the
optimization.
In terms of tests I can not produce an ADDC from the IR level until I get in my
multiprecision optimization patch which is forthcoming. The tests for said patch
would cause this assert to fail implying that said tests will provide the
relevant tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184230
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 20:42:25 +0000 (20:42 +0000)]
Remove unused Path::canRead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184229
91177308-0d34-0410-b5e6-
96231b3b80d8
Nadav Rotem [Tue, 18 Jun 2013 20:41:52 +0000 (20:41 +0000)]
Fix 80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184228
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Tue, 18 Jun 2013 20:19:24 +0000 (20:19 +0000)]
Change the arm assembler to support this from the v7c spec:
"When assembling to the ARM instruction set, the .N qualifier produces
an assembler error and the .W qualifier has no effect."
In the pre-matcher handler in the asm parser the ".w" (wide) qualifier
when in ARM mode is now discarded. And an error message is now
produced when the ".n" (narrow) qualifier is used in ARM mode.
Test cases for these were added.
rdar://
14064574
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184224
91177308-0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Tue, 18 Jun 2013 20:14:39 +0000 (20:14 +0000)]
During SelectionDAG building explicitly set a node to constant zero when the
value is zero.
This allows optmizations to kick in more easily.
Fix some test cases so that they remain meaningful (i.e., not completely dead
coded) when optimizations apply.
<rdar://problem/
14096009> superfluous multiply by high part of zero-extended
value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184222
91177308-0d34-0410-b5e6-
96231b3b80d8
Jack Carter [Tue, 18 Jun 2013 19:47:15 +0000 (19:47 +0000)]
Mips ELF: Mark object file as ABI compliant
When producing objects that are abi compliant we are
marking neither the object file nor the assembly file
correctly and thus generate warnings.
We need to set the EF_CPIC flag in the ELF header when
generating direct object.
Note that the warning is only generated when compiling without PIC.
When compiling with clang the warning will be suppressed by supplying:
-Wa,-mno-shared -Wa,-call_nonpic
Also the following directive should also be added:
.option pic0
when compiling without PIC, This eliminates the need for supplying:
-mno-shared -call_nonpic
on the assembler command line.
Patch by Douglas Gilmore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184220
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 19:46:19 +0000 (19:46 +0000)]
Remove uniqueID from PathV1.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184219
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 19:34:49 +0000 (19:34 +0000)]
Add a GetUniqueID that will replace the uniqueID of PathV1.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184217
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Tue, 18 Jun 2013 18:03:17 +0000 (18:03 +0000)]
Reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184213
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 18 Jun 2013 17:20:08 +0000 (17:20 +0000)]
Convert most uses of PathV1.h in ToolRunner.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184210
91177308-0d34-0410-b5e6-
96231b3b80d8