| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Add support for getting the last modification time from a file_status. | Rafael Espindola | 2013-06-20 | 2 | -0/+17 | 
| | | | | | | | Use that in llvm-ar.cpp to replace a use of sys::PathWithStatus. llvm-svn: 184450 | ||||
| * | Clang-format the SLP vectorizer. No functionality change. | Nadav Rotem | 2013-06-20 | 3 | -202/+259 | 
| | | | | | llvm-svn: 184446 | ||||
| * | This reverts r155000. | Joey Gouly | 2013-06-20 | 1 | -6/+1 | 
| | | | | | | | | | | The cdp2 instruction should have the same restrictions as cdp on the co-processor registers. VFP instructions on v8/AArch32 share the same encoding space as cdp2. llvm-svn: 184445 | ||||
| * | SLPVectorization: Add a basic support for cross-basic block slp vectorization. | Nadav Rotem | 2013-06-20 | 3 | -13/+80 | 
| | | | | | | | | We collect gather sequences when we vectorize basic blocks. Gather sequences are excellent hints for vectorization of other basic blocks. llvm-svn: 184444 | ||||
| * | [PowerPC] Remove unused parameter | Ulrich Weigand | 2013-06-20 | 3 | -14/+14 | 
| | | | | | | | | The isDarwin parameter to the llvm::LowerPPCMachineInstrToMCInst routine is now no longer needed; remove it. llvm-svn: 184441 | ||||
| * | Change the debug type to match the debug type that is used by vecutils.cpp. | Nadav Rotem | 2013-06-20 | 1 | -1/+1 | 
| | | | | | | | This change makes it easier to filter debug messages. llvm-svn: 184440 | ||||
| * | [PowerPC] Add missing build dependency | Ulrich Weigand | 2013-06-20 | 1 | -1/+1 | 
| | | | | | | | | This (hopefully) fixes build failures resulting from r184436; the PowerPC asm parser now depends on PowerPC target expresssions. llvm-svn: 184439 | ||||
| * | [MC] Support @ variants with directional labels | Ulrich Weigand | 2013-06-20 | 1 | -2/+12 | 
| | | | | | | | | | | | | 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. llvm-svn: 184437 | ||||
| * | [PowerPC] Optimize @ha/@l constructs | Ulrich Weigand | 2013-06-20 | 4 | -46/+144 | 
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 184436 | ||||
| * | [PowerPC] Support compare mnemonics with implied CR0 | Ulrich Weigand | 2013-06-20 | 1 | -0/+9 | 
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)>; + llvm-svn: 184435 | ||||
| * | Fix get_magic() handling of short reads. | Evgeniy Stepanov | 2013-06-20 | 1 | -2/+2 | 
| | | | | | | | PR16389 llvm-svn: 184434 | ||||
| * | Rename fs::GetUniqueID to fs::getUniqueID to match the style guide. | Rafael Espindola | 2013-06-20 | 2 | -2/+2 | 
| | | | | | llvm-svn: 184431 | ||||
| * | Remove MSan hack that is no longer needed. | Evgeniy Stepanov | 2013-06-20 | 1 | -2/+0 | 
| | | | | | llvm-svn: 184428 | ||||
| * | Optimize register parsing for MipsAsmParser. Allow symbolic aliases for FPU ↵ | Vladimir Medic | 2013-06-20 | 1 | -48/+58 | 
| | | | | | | | registers. llvm-svn: 184411 | ||||
| * | DebugInfo: don't use location lists when the location covers the whole ↵ | David Blaikie | 2013-06-20 | 3 | -9/+12 | 
| | | | | | | | | | | | | | | 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. llvm-svn: 184387 | ||||
| * | [Support/CrashRecoveryContext] Make sure CrashRecoveryContext does not clear ↵ | Argyrios Kyrtzidis | 2013-06-19 | 1 | -2/+11 | 
| | | | | | | | | | | | | | | | | | | 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 llvm-svn: 184380 | ||||
| * | This is now a duplicate. | Bill Wendling | 2013-06-19 | 1 | -26/+0 | 
| | | | | | llvm-svn: 184376 | ||||
| * | Make the comparison operators non-member functions. | Bill Wendling | 2013-06-19 | 1 | -2/+2 | 
| | | | | | llvm-svn: 184373 | ||||
| * | Don't pass in the TargetInstrInfo into the register info object. It doesn't ↵ | Bill Wendling | 2013-06-19 | 3 | -4/+3 | 
| | | | | | | | use it. llvm-svn: 184369 | ||||
| * | DebugInfo: PR14763/r183329 correct the location of indirect parameters | David Blaikie | 2013-06-19 | 4 | -11/+16 | 
| | | | | | | | | | | | | | | | | | 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). llvm-svn: 184368 | ||||
| * | Spell correct (s/begining/beginning/) | David Blaikie | 2013-06-19 | 1 | -3/+3 | 
| | | | | | llvm-svn: 184362 | ||||
| * | llvm-dwarfdump: Add support for dumping the .debug_loc section | David Blaikie | 2013-06-19 | 6 | -1/+170 | 
| | | | | | | | | | | 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. llvm-svn: 184361 | ||||
| * | Access the TargetLoweringInfo from the TargetMachine object instead of ↵ | Bill Wendling | 2013-06-19 | 19 | -295/+367 | 
| | | | | | | | caching it. The TLI may change between functions. No functionality change. llvm-svn: 184360 | ||||
| * | [MC/DWARF] Generate multiple .debug_line entries for adjacent .loc directives | Ulrich Weigand | 2013-06-19 | 1 | -0/+13 | 
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 184357 | ||||
| * | [APFloat] Converted all references to APFloat::isNormal => ↵ | Michael Gottesman | 2013-06-19 | 4 | -14/+14 | 
| | | | | | | | | | APFloat::isFiniteNonZero. Turns out all the references were in llvm and not in clang. llvm-svn: 184356 | ||||
| * | Access the TargetLoweringInfo from the TargetMachine object instead of ↵ | Bill Wendling | 2013-06-19 | 5 | -25/+25 | 
| | | | | | | | caching it. The TLI may change between functions. No functionality change. llvm-svn: 184352 | ||||
| * | Modified the implementation of fs::GetUniqueID on Windows such that it ↵ | Aaron Ballman | 2013-06-19 | 1 | -9/+14 | 
| | | | | | | | actually finds a unique identifier for a file. Also adds unit tests for GetUniqueID. llvm-svn: 184351 | ||||
| * | Access the TargetLoweringInfo from the TargetMachine object instead of ↵ | Bill Wendling | 2013-06-19 | 9 | -42/+52 | 
| | | | | | | | caching it. The TLI may change between functions. No functionality change. llvm-svn: 184349 | ||||
| * | Don't cache the TLI object since we have access to it through TargetMachine ↵ | Bill Wendling | 2013-06-19 | 1 | -6/+8 | 
| | | | | | | | already. llvm-svn: 184346 | ||||
| * | Allow creation of single-byte MCAtoms. | Ahmed Bougacha | 2013-06-19 | 2 | -2/+2 | 
| | | | | | llvm-svn: 184344 | ||||
| * | Move StructurizeCFG out of R600 to generic Transforms. | Matt Arsenault | 2013-06-19 | 5 | -70/+54 | 
| | | | | | | | Register it with PassManager llvm-svn: 184343 | ||||
| * | LSR: Fix the parameters used to compute the scaling factor cost. | Quentin Colombet | 2013-06-19 | 1 | -5/+13 | 
| | | | | | | | | | | | | | | 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!") llvm-svn: 184341 | ||||
| * | SLPVectorizer: handle scalars that are extracted from vectors (using ↵ | Nadav Rotem | 2013-06-19 | 1 | -0/+44 | 
| | | | | | | | ExtractElementInst). llvm-svn: 184325 | ||||
| * | SLPVectorizer: start constructing chains at stores that are not power of two. | Nadav Rotem | 2013-06-19 | 1 | -3/+17 | 
| | | | | | | | | | 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%. llvm-svn: 184317 | ||||
| * | Remove Path::getDirectoryContents. | Rafael Espindola | 2013-06-19 | 2 | -78/+0 | 
| | | | | | llvm-svn: 184311 | ||||
| * | Remove Path::isObjectFile. | Rafael Espindola | 2013-06-19 | 1 | -8/+0 | 
| | | | | | llvm-svn: 184305 | ||||
| * | Remove Path::canExecute. | Rafael Espindola | 2013-06-19 | 2 | -19/+0 | 
| | | | | | llvm-svn: 184298 | ||||
| * | The RenderMethod field in RegisterOperand class sets the name of the method ↵ | Vladimir Medic | 2013-06-19 | 2 | -19/+10 | 
| | | | | | | | 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 llvm-svn: 184292 | ||||
| * | MachOUniversal.cpp: Fix abuse of Twine. It would be sufficient to use ↵ | NAKAMURA Takumi | 2013-06-19 | 1 | -3/+3 | 
| | | | | | | | std::string instead. llvm-svn: 184291 | ||||
| * | Fixed comment typo that causes the given comment to actually make sense. | Michael Gottesman | 2013-06-19 | 1 | -1/+1 | 
| | | | | | llvm-svn: 184286 | ||||
| * | SLPVectorizer: vectorize compares and selects. | Nadav Rotem | 2013-06-19 | 1 | -3/+75 | 
| | | | | | llvm-svn: 184282 | ||||
| * | Document the return value and fix a typo. | Nadav Rotem | 2013-06-19 | 1 | -1/+2 | 
| | | | | | llvm-svn: 184281 | ||||
| * | [yaml2obj][ELF] Support ELFOSABI_* enum. | Sean Silva | 2013-06-19 | 1 | -0/+28 | 
| | | | | | llvm-svn: 184268 | ||||
| * | [yaml2obj][ELF] Support st_info through `Binding` and `Type` YAML keys. | Sean Silva | 2013-06-19 | 1 | -0/+25 | 
| | | | | | llvm-svn: 184263 | ||||
| * | Use GetUnderlyingObject instead of custom function | Matt Arsenault | 2013-06-18 | 1 | -58/+20 | 
| | | | | | llvm-svn: 184261 | ||||
| * | [yaml2obj][ELF] Rudimentary symbol table support. | Sean Silva | 2013-06-18 | 1 | -0/+10 | 
| | | | | | | | Currently, we only output the name. llvm-svn: 184255 | ||||
| * | ARM: Add optional datatype suffix to NEON mvn asm syntax. | Jim Grosbach | 2013-06-18 | 1 | -1/+6 | 
| | | | | | | | rdar://14194152 llvm-svn: 184244 | ||||
| * | We want a string representation of the attribute, not the kind as a string. | Bill Wendling | 2013-06-18 | 1 | -2/+2 | 
| | | | | | llvm-svn: 184239 | ||||
| * | Remove Path::canWrite. | Rafael Espindola | 2013-06-18 | 2 | -13/+0 | 
| | | | | | llvm-svn: 184235 | ||||
| * | Add a can_write function to PathV2. | Rafael Espindola | 2013-06-18 | 2 | -0/+18 | 
| | | | | | llvm-svn: 184233 | ||||

