summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* llvm-profdata: Don't pipe stderr into show for the testsJustin Bogner2014-03-221-9/+9
| | | | | | | | Some text shows up on stderr when using guard malloc, and this test was trying to treat that as input to llvm-profdata show. There's no reason to pipe stderr into show at all here. llvm-svn: 204549
* Prune includes in ARM target.Craig Topper2014-03-2232-55/+25
| | | | llvm-svn: 204548
* ARM IAS: properly handle function entries in .thumbSaleem Abdulrasool2014-03-224-2/+126
| | | | | | | | | | | | | | | | | | | | When a label is parsed, check if there is type information available for the label. If so, check if the symbol is a function. If the symbol is a function and we are in thumb mode and no explicit thumb_func has been emitted, adjust the symbol data to indicate that the function definition is a thumb function. The application of this inferencing is improved value handling in the object file (the required thumb bit is set on symbols which are thumb functions). It also helps improve compatibility with binutils. The one complication that arises from this handling is the MCAsmStreamer. The default implementation of getOrCreateSymbolData in MCStreamer does not support tracking the symbol data. In order to support the semantics of thumb functions, track symbol data in assembly streamer. Although O(n) in number of labels in the TU, this is already done in various other streamers and as such the memory overhead is not a practical concern in this scenario. llvm-svn: 204544
* [PowerPC] Fix the VSX v2f64 return registerHal Finkel2014-03-222-7/+5
| | | | | | | v2f64 values, like other 128-bit values, are returned under VSX in register vs34 (Altivec register v2). llvm-svn: 204543
* [TableGen] Don't assert, produce an error, when an instruction has too few ↵Hal Finkel2014-03-221-1/+12
| | | | | | | | | | | operands When an instruction's operand list does not have a sufficient number of operands to match with all of the variables that contribute to its encoding, instead of asserting inside a call to getSubOperandNumber, produce an informative error. llvm-svn: 204542
* llvm-profdata: Avoid F_Text in "merge" for now, since "llvm-profdata show" ↵NAKAMURA Takumi2014-03-221-1/+2
| | | | | | | is confused with CRLF. FIXME: line_iterator should be tolerant of CR. llvm-svn: 204540
* [Constant Hoisting] Erase dead cast instructions.Juergen Ributzka2014-03-221-1/+1
| | | | | | | The cleanup code that removes dead cast instructions only removed them from the basic block, but didn't delete them. This fix erases them now too. llvm-svn: 204538
* [Constant Hoisting] Fix multiple entries for the same basic block in PHI nodes.Juergen Ributzka2014-03-222-3/+82
| | | | | | | | | | | | | | | | | | | | A PHI node usually has only one value/basic block pair per incoming basic block. In the case of a switch statement it is possible that a following PHI node may have more than one such pair per incoming basic block. E.g.: %0 = phi i64 [ 123456, %case2 ], [ 654321, %Entry ], [ 654321, %Entry ] This is valid and the verfier doesn't complain, because both values are the same. Constant hoisting materializes the constant for each operand separately and the value is still the same, but the variable names have changed. As a result the verfier can't recognize anymore that they are the same value and complains. This fix adds special update code for PHI node in constant hoisting to prevent this corner case. This fixes <rdar://problem/16394449> llvm-svn: 204537
* [DAG] Fix an assertion failure caused by an invalid cast in method ↵Andrea Di Biagio2014-03-224-12/+69
| | | | | | | | | | | | 'BuildVectorSDNode::isConstantSplat' This patch renames method 'isConstantSplat' as 'getConstantSplatValue' (mainly for consistency reasons), and rewrites its logic to ensure that we always perform a legal 'cast<ConstantSDNode>'. Added test shift-combine-crash.ll to verify that DAGCombiner no longer crashes with an assertion failure in the attempt to simplify a vector shift by a vector of all undef counts. llvm-svn: 204536
* Suppress SupportTests.LockFileManagerTest on win32 for investigating.NAKAMURA Takumi2014-03-221-0/+2
| | | | llvm-svn: 204533
* Delete stale comment. Thanks, Eric!Adrian Prantl2014-03-211-1/+0
| | | | llvm-svn: 204530
* Dwarf Debug: Remove some cargo-cult type uniquing. Scopes do not haveAdrian Prantl2014-03-211-1/+1
| | | | | | | an ID, so this is a noop. Thanks Manman for catching this! llvm-svn: 204528
* Fix the value computation inRafael Espindola2014-03-212-23/+58
| | | | | | | | | | sym_a: sym_d = sym_a + 1 This is the smallest fix I was able to extract from what got reverted in r204203. llvm-svn: 204527
* Remove some dead assignements found by scan-buildArnaud A. de Grandmaison2014-03-213-8/+5
| | | | llvm-svn: 204526
* Register allocator: add condition to hoist a spill to outer loop.Manman Ren2014-03-212-0/+403
| | | | | | | | | | | We make sure a spill is not hoisted to a hotter outer loop by adding a condition. Hoist a spill to outer loop if there are multiple dependents (it can be beneficial if more than one dependents are hoisted) or if DepSV (the hoisting source) is hotter than SV (the hoisting destination). rdar://16268194 llvm-svn: 204522
* [Support] Follow up to r204426, for LockFileManager, make the given path ↵Argyrios Kyrtzidis2014-03-211-3/+6
| | | | | | absolute so relative paths are properly handled in both Windows and Unix. llvm-svn: 204520
* InstrProf: Cleanup binary profdata testcaseDuncan P. N. Exon Smith2014-03-214-165/+24
| | | | | | | | | | Cleanup the current binary testcase for profile data. - Rename it to something more specific. - Remove the text comparison. - Check the output of llvm-profdata show. llvm-svn: 204518
* InstrProf: Move constructor to the headerDuncan P. N. Exon Smith2014-03-212-4/+2
| | | | | | | | Fixes 80-column violation at the same time. <rdar://problem/15950346> llvm-svn: 204516
* InstrProf: Change magic number to have non-text charactersDuncan P. N. Exon Smith2014-03-213-10/+10
| | | | | | | | | Include non-text characters in the magic number so that text files can't match. <rdar://problem/15950346> llvm-svn: 204513
* InstrProf: Use move semantics with unique_ptrDuncan P. N. Exon Smith2014-03-212-7/+7
| | | | | | <rdar://problem/15950346> llvm-svn: 204512
* InstrProf: Detect magic numbers in a more scalable wayDuncan P. N. Exon Smith2014-03-212-34/+33
| | | | | | | | No functionality change. <rdar://problem/15950346> llvm-svn: 204511
* InstrProf: Actually detect bad headersDuncan P. N. Exon Smith2014-03-214-7/+14
| | | | | | <rdar://problem/15950346> llvm-svn: 204510
* [RuntimeDyld] Fix comment for previous commit (r204439)Juergen Ributzka2014-03-211-2/+4
| | | | llvm-svn: 204508
* [RuntimeDyld] clang-format files.Juergen Ributzka2014-03-216-747/+580
| | | | llvm-svn: 204507
* DebugInfo: Omit DW_AT_addr_base from skeletal type units.David Blaikie2014-03-213-11/+9
| | | | | | | | | | | | | Type units have no addresses, so there's no need for DW_AT_addr_base. This removes another relocation from every skeletal type unit and brings LLVM's skeletal type units in line with GCC's (containing only GNU_dwo_name (strp), comp_dir (strp), and GNU_pubnames (flag_present)). Cary's got some ideas about using str_index in the .o file to reduce those last two relocations (well, replace two relocations with one relocation (pointing to the string index) and two indicies) llvm-svn: 204506
* [AArch64] Add SchedRW lists to NEON instructions.Chad Rosier2014-03-215-247/+542
| | | | | | | | | | | | Previously, only regular AArch64 instructions were annotated with SchedRW lists. This patch does the same for NEON enabling these instructions to be scheduled by the MIScheduler. Additionally, store operations are now modeled and a few SchedRW lists were updated for bug fixes (e.g. multiple def operands). Reviewers: apazos, mcrosier, atrick Patch by Dave Estes <cestes@codeaurora.org>! llvm-svn: 204505
* ProfileData: Avoid double underscores in header guardsJustin Bogner2014-03-213-9/+9
| | | | llvm-svn: 204501
* InstrProf: Read raw binary profile in llvm-profdataDuncan P. N. Exon Smith2014-03-215-4/+339
| | | | | | | | | | | | | | Read a raw binary profile that corresponds to a memory dump from the runtime profile. The test is a binary file generated from cfe/trunk/test/Profile/c-general.c with the new compiler-rt runtime and the matching text version of the input. It includes instructions on how to regenerate. <rdar://problem/15950346> llvm-svn: 204496
* ProfileData: Avoid brace initialization, windows doesn't like itJustin Bogner2014-03-211-1/+3
| | | | llvm-svn: 204494
* R600/SI: Move instruction patterns to scalar versions.Matt Arsenault2014-03-219-76/+164
| | | | | | | Some of them also had the pattern on both, so this removes the duplication. llvm-svn: 204492
* Remove redundant test.Rafael Espindola2014-03-211-9/+0
| | | | | | This is tested from MC already. llvm-svn: 204491
* Move codegen test over to MC.Rafael Espindola2014-03-212-67/+8
| | | | llvm-svn: 204490
* ProfileData: Introduce InstrProfWriter using the naive text formatJustin Bogner2014-03-218-81/+205
| | | | | | | | | | | This isn't a format we'll want to write out in practice, but moving it to the writer library simplifies llvm-profdata and isolates it from further changes to the format. This also allows us to update the tests to not rely on the text output format. llvm-svn: 204489
* Convert test to using cfi.Rafael Espindola2014-03-211-2/+4
| | | | | | An unnamed global in llvm still produces a regular symbol. llvm-svn: 204488
* Refactor llvm/test/lit.cfg to use lit.util.which.Paul Robinson2014-03-211-28/+19
| | | | llvm-svn: 204486
* llvm-profdata: Implement show commandJustin Bogner2014-03-211-2/+98
| | | | | | | The `llvm-profdata show` command summarizes a profdata file's contents in a human readable format. llvm-svn: 204485
* Remove redundant test.Rafael Espindola2014-03-211-10/+0
| | | | | | | The production of the .eh symbols is done from MC now and we already have tests for it. llvm-svn: 204483
* ProfileData: Introduce the InstrProfReader interface and a text readerJustin Bogner2014-03-2115-79/+400
| | | | | | | | | | This introduces the ProfileData library and updates llvm-profdata to use this library for reading profiles. InstrProfReader is an abstract base class that will be subclassed for both the raw instrprof data from compiler-rt and the efficient instrprof format that will be used for PGO. llvm-svn: 204482
* Split out the MC part of this test.Rafael Espindola2014-03-212-6/+18
| | | | llvm-svn: 204481
* [mips] Correct lowering of VECTOR_SHUFFLE to VSHF.Daniel Sanders2014-03-212-5/+20
| | | | | | | | | | | | | | | | | | | | | Summary: VECTOR_SHUFFLE concatenates the vectors in an vectorwise fashion. <0b00, 0b01> + <0b10, 0b11> -> <0b00, 0b01, 0b10, 0b11> VSHF concatenates the vectors in a bitwise fashion: <0b00, 0b01> + <0b10, 0b11> -> 0b0100 + 0b1110 -> 0b01001110 <0b10, 0b11, 0b00, 0b01> We must therefore swap the operands to get the correct result. The test case that discovered the issue was MultiSource/Benchmarks/nbench. Reviewers: matheusalmeida Reviewed By: matheusalmeida Differential Revision: http://llvm-reviews.chandlerc.com/D3142 llvm-svn: 204480
* Add overall description, file comments, some structureRenato Golin2014-03-211-23/+138
| | | | llvm-svn: 204479
* R600/SI: Handle MUBUF instructions in SIInstrInfo::moveToVALU()Tom Stellard2014-03-216-5/+157
| | | | llvm-svn: 204476
* R600/SI: Handle S_MOV_B64 in SIInstrInfo::moveToVALU()Tom Stellard2014-03-212-2/+92
| | | | llvm-svn: 204475
* R600/SI: Use SGPR_(32|64) reg clases when lowering SI_ADDR64_RSRCTom Stellard2014-03-211-4/+4
| | | | | | | | | | | | | | The SReg_(32|64) register classes contain special registers in addition to the numbered SGPRs. This can lead to machine verifier errors when these register classes are used as sub-registers for SReg_128, since SReg_128 only uses the numbered SGPRs. Replacing SReg_(32|64) with SGPR_(32|64) fixes this problem, since the SGPR_(32|64) register classes contain only numbered SGPRs. Tests cases for this are comming in a later commit. llvm-svn: 204474
* Sink: Don't sink static allocas from the entry blockTom Stellard2014-03-212-0/+86
| | | | | | | CodeGen treats allocas outside the entry block as dynamically sized stack objects. llvm-svn: 204473
* [SystemZ] Use "let Predicates =" for blocks of new instructionsRichard Sandiford2014-03-212-18/+15
| | | | | | | | | ...instead of a separate Requires for each one. This style was already used in some places and seems more compact. No behavioral change intended. llvm-svn: 204452
* [SystemZ] Add support for z196 float<->unsigned conversionsRichard Sandiford2014-03-2112-13/+808
| | | | | | These complement the older float<->signed instructions. llvm-svn: 204451
* [mips] Update namespace.Matheus Almeida2014-03-211-5/+1
| | | | | | | We should be using the llvm namespace and not an anonymous namespace in a header file. llvm-svn: 204450
* [RuntimeDyld] Allow processRelocationRef to process more than one relocation ↵Juergen Ributzka2014-03-2113-46/+90
| | | | | | | | | | | | | entry at a time. Some targets require more than one relocation entry to perform a relocation. This change allows processRelocationRef to process more than one relocation entry at a time by passing the relocation iterator itself instead of just the relocation entry. Related to <rdar://problem/16199095> llvm-svn: 204439
* Fix test command line to avoid generating output file.Kevin Qin2014-03-211-1/+1
| | | | llvm-svn: 204437
OpenPOWER on IntegriCloud