summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* SLP Vectorizer: do not search for store-chains that are wider than the ↵Nadav Rotem2013-06-211-2/+4
| | | | | | vector-register size. llvm-svn: 184527
* [APFloat] Added missing doxygen module closing statement.Michael Gottesman2013-06-211-0/+2
| | | | llvm-svn: 184526
* DebugInfo: When asm printing include a '[def]' tag for tag decls that are ↵David Blaikie2013-06-211-1/+6
| | | | | | | | | definitions (& rename the 'fwd' tag to 'decl' for clarity) This change is version locked with a change in Clang, so expect some transient buildbot fallout. llvm-svn: 184525
* Add a release note for removing the simplify-libcalls pass.Meador Inge2013-06-211-0/+4
| | | | llvm-svn: 184522
* [docs] Fix broken link.Sean Silva2013-06-211-1/+1
| | | | llvm-svn: 184514
* [yaml2obj][ELF] Allow expressing undefined symbols.Sean Silva2013-06-212-7/+13
| | | | | | | | | | Previously we unconditionally enforced that section references in symbols in the YAML had a name that was a section name present in the object, and linked the references to that section. Now, permit empty section names (already the default, if the `Section` key is not provided) to indicate SHN_UNDEF. llvm-svn: 184513
* Unbreak bots. Didn't realize this was a C++11 feature.Sean Silva2013-06-211-5/+6
| | | | llvm-svn: 184508
* [docs] Fix formatting.Sean Silva2013-06-211-1/+1
| | | | | | '\n' was displaying as 'n' llvm-svn: 184507
* [yaml2obj][ELF] Don't explicitly set `Binding` with STB_*Sean Silva2013-06-215-48/+96
| | | | | | | | | | | | | | | Instead, just have 3 sub-lists, one for each of {STB_LOCAL,STB_GLOBAL,STB_WEAK}. This allows us to be a lot more explicit w.r.t. the symbol ordering in the object file, because if we allowed explicitly setting the STB_* `Binding` key for the symbol, then we might have ended up having to shuffle STB_LOCAL symbols to the front of the list, which is likely to cause confusion and potential for error. Also, this new approach is simpler ;) llvm-svn: 184506
* ARM: Remove a (false) dependency on the memoryoperand's value as we do not useQuentin Colombet2013-06-203-3/+46
| | | | | | | | | | it at the moment. This allows to form more paired loads even when stack coloring pass destroys the memoryoperand's value. <rdar://problem/13978317> llvm-svn: 184492
* [PowerPC] Clean up VK_PPC_TOC... namesUlrich Weigand2013-06-204-23/+23
| | | | | | | | | | | | This is another minor cleanup; to bring enum names in line with the corresponding @modifier names, this renames: VK_PPC_TOC -> VK_PPC_TOCBASE VK_PPC_TOC_ENTRY -> VK_PPC_TOC16 No code change intended. llvm-svn: 184491
* Update the X86 disassembler to use xacquire and xrelease when appropriate.Kevin Enderby2013-06-204-1/+61
| | | | | | | | | | | | | | | | | This is a bit tricky as the xacquire and xrelease hints use the same bytes, 0xf2 and 0xf3, as the repne and rep prefixes. Fortunately llvm has different llvm MCInst Opcode enums for rep/xrelease and repne/xacquire. So to make this work a boolean was added the InternalInstruction struct as part of the Prefix state which is set with the added logic in readPrefixes() when decoding an instruction to determine if these prefix bytes are to be disassembled as xacquire or xrelease. Then we let the matcher pick the normal prefix instructionID and we change the Opcode after that when it is set into the MCInst being created. rdar://11019859 llvm-svn: 184490
* Add another fixme.Rafael Espindola2013-06-201-0/+1
| | | | llvm-svn: 184488
* Add a fixme.Rafael Espindola2013-06-201-0/+1
| | | | llvm-svn: 184486
* [PowerPC] Minor cleanup in PPCELFObjectWriter::getRelocTypeInnerUlrich Weigand2013-06-201-24/+24
| | | | | | | | | This just re-sorts the big switch statement in PPCELFObjectWriter::getRelocTypeInner to follow the (numerical) order of the reloc types, and fixes a couple of whitespace issues. llvm-svn: 184485
* Remove last use of PathV1.h from Archive.cpp.Rafael Espindola2013-06-203-9/+30
| | | | llvm-svn: 184484
* R600/SI: Expand sub for v2i32 and v4i32 for SITom Stellard2013-06-202-6/+34
| | | | | | | | | | Also add a v2i32 test to the existing v4i32 test. Patch by: Aaron Watry Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Aaron Watry<awatry@gmail.com> llvm-svn: 184482
* R600/SI: Expand add for v2i32 and v4i32Tom Stellard2013-06-202-6/+33
| | | | | | | | | | | Also add SI tests to existing file and a v2i32 test for both R600 and SI. Patch by: Aaron Watry Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Aaron Watry <awatry@gmail.com> llvm-svn: 184481
* R600: Expand v2i32 load/store instead of custom loweringTom Stellard2013-06-202-2/+8
| | | | | | | | | | | | | The custom lowering causes llc to crash with a segfault. Ideally, the custom lowering can be fixed, but this allows programs which load/store v2i32 to work without crashing. Patch by: Aaron Watry Reviewed-by: Tom Stellard <thomas.stellard@amd.com> Signed-off-by: Aaron Watry<awatry@gmail.com> llvm-svn: 184480
* Minor grammar and word usage fix to 'returned' parameter attribute section ↵Stephen Lin2013-06-201-8/+7
| | | | | | of LangRef llvm-svn: 184479
* make getLastModificationTime const. Move it with the other getters.Rafael Espindola2013-06-203-4/+4
| | | | llvm-svn: 184478
* [yaml2obj][ELF] Add support for st_value and st_size.Sean Silva2013-06-204-0/+22
| | | | | | | | | After this patch, the ELF file produced by `yaml2obj-elf-symbol-basic.yaml`, when linked and executed on x86_64 (under SysV ABI, obviously; I tested on Linux), produces a working executable that goes into an infinite loop! llvm-svn: 184469
* [yaml2obj][ELF] Allow symbols to reference sections.Sean Silva2013-06-204-0/+11
| | | | llvm-svn: 184468
* [yaml2obj][ELF] Add the section name -> section index map to State.Sean Silva2013-06-201-4/+7
| | | | | | | | | | | | | | One of the key things that the YAML format abstracts over is the use of section numbers for referencing sections. Instead, textual section names are used, which yaml2obj then translates into appropriate section numbers. (Technically ELF doesn't care about section names (only section numbers), but since this is a testing tool, readability counts). This simplifies using section names as symbolic references in various parts of the code. An upcoming commit will use this to allow symbols to reference sections. llvm-svn: 184467
* Add a setLastModificationAndAccessTime to PathV2.Rafael Espindola2013-06-204-19/+58
| | | | | | With this we can remove the last use of PathV1 from llvm-ar.cpp. llvm-svn: 184464
* [mips] Remove Triple:mips from SupportedArchs in MCJIT unittestsAkira Hatanaka2013-06-201-1/+0
| | | | | | | | | | | | | | MIPS does not handle multiple relocations correctly, so two tests from the unittests are expected to fail. These are: - MCJITTest.return_global and - MCJITTest.multiple_functions. Until the multiple relocations are fixed, XFAIL the MCJIT unittests for MIPS. This issue is tracked as Bug 16250. Patch by Petar Jovanovic. llvm-svn: 184461
* Use a raw_fd_ostream instead of a std::ofstream.Rafael Espindola2013-06-201-4/+5
| | | | llvm-svn: 184460
* Remove the simplify-libcalls pass (finally)Meador Inge2013-06-2010-266/+52
| | | | | | | | | | | This commit completely removes what is left of the simplify-libcalls pass. All of the functionality has now been migrated to the instcombine and functionattrs passes. The following C API functions are now NOPs: 1. LLVMAddSimplifyLibCallsPass 2. LLVMPassManagerBuilderSetDisableSimplifyLibCalls llvm-svn: 184459
* [yaml2obj][ELF] Start factoring into "single point of truth".Sean Silva2013-06-201-19/+51
| | | | llvm-svn: 184457
* [yaml2obj][ELF] Just let this class own its buffer.Sean Silva2013-06-201-4/+4
| | | | llvm-svn: 184456
* Remove a trivial use of sys::Path.Rafael Espindola2013-06-201-12/+5
| | | | llvm-svn: 184455
* [ReleaseNotes] Added bullet point stating that APFloat::isNormal() is now ↵Michael Gottesman2013-06-201-0/+4
| | | | | | | | IEEE 754R-2008 compliant and that the relevant method renaming occurred. For more information see r184449, r184350, r184356, r184366. llvm-svn: 184452
* Add support for getting the last modification time from a file_status.Rafael Espindola2013-06-204-6/+25
| | | | | | Use that in llvm-ar.cpp to replace a use of sys::PathWithStatus. llvm-svn: 184450
* [APFloat] Rename isIEEENormal => isNormal and remove old isNormal method.Michael Gottesman2013-06-202-9/+8
| | | | | | | | The old isNormal is already functionally replaced by the method isFiniteNonZero in r184350 and all references to said method were replaced in LLVM/clang in r184356/134366. llvm-svn: 184449
* Use only the filename when deciding if a file is a duplicate.Rafael Espindola2013-06-202-1/+3
| | | | | | Matches gnu ar behavior. llvm-svn: 184448
* [APFloat] Fix typo in test so we actually test if we handle denormals.Michael Gottesman2013-06-201-4/+4
| | | | llvm-svn: 184447
* Clang-format the SLP vectorizer. No functionality change.Nadav Rotem2013-06-203-202/+259
| | | | llvm-svn: 184446
* This reverts r155000.Joey Gouly2013-06-204-10/+7
| | | | | | | | | 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 Rotem2013-06-204-13/+134
| | | | | | | We collect gather sequences when we vectorize basic blocks. Gather sequences are excellent hints for vectorization of other basic blocks. llvm-svn: 184444
* Give this X86-specific test a triple so it's actually X86-specific.David Blaikie2013-06-201-1/+1
| | | | llvm-svn: 184443
* [PowerPC] Remove unused parameterUlrich Weigand2013-06-203-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 Rotem2013-06-201-1/+1
| | | | | | This change makes it easier to filter debug messages. llvm-svn: 184440
* [PowerPC] Add missing build dependencyUlrich Weigand2013-06-201-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 labelsUlrich Weigand2013-06-202-3/+19
| | | | | | | | | | | 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 constructsUlrich Weigand2013-06-205-48/+163
| | | | | | | | | | | | | | | | | | | | | | | | | 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 CR0Ulrich Weigand2013-06-202-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Stepanov2013-06-201-2/+2
| | | | | | PR16389 llvm-svn: 184434
* Remove the transitional GetUniqueID.Rafael Espindola2013-06-201-4/+0
| | | | llvm-svn: 184433
* Rename fs::GetUniqueID to fs::getUniqueID to match the style guide.Rafael Espindola2013-06-204-8/+12
| | | | llvm-svn: 184431
* Remove MSan hack that is no longer needed.Evgeniy Stepanov2013-06-201-2/+0
| | | | llvm-svn: 184428
OpenPOWER on IntegriCloud