summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Simplify test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance.cpp by ↵Timur Iskhodzhanov2014-03-231-253/+250
| | | | | | | | forcing VFTableBuilder invocation with virtual function calls or constructors codegen Previously the vftables were built at the end of the TU in a reverse-to-random order llvm-svn: 204567
* CodeGen: Make string tests exercise the MS ABIDavid Majnemer2014-03-232-2/+29
| | | | | | | r204562 unwittingly failed tests for some bots. Make those tests work with both the Itanium and MS ABIs. llvm-svn: 204566
* WinCOFF: Add support for -ffunction-sectionsDavid Majnemer2014-03-232-4/+17
| | | | | | | | This is a pretty straight forward translation for COFF, we just need to stick the function in a COMDAT section marked as IMAGE_COMDAT_SELECT_NODUPLICATES. llvm-svn: 204565
* Driver: Map /Gy to -ffunction-sectionsDavid Majnemer2014-03-232-4/+10
| | | | | | | | | | /Gy is equivalent to -ffunction-sections. /Gy- is equivalent to -fno-function-sections. Currently, LLVM doesn't do anything interesting with -ffunction-sections under WinCOFF. llvm-svn: 204564
* Driver: cleanup /vd2 testDavid Majnemer2014-03-231-1/+3
| | | | | | | | /vd2 is not ignored anymore, remove it from the ignored list. Add a test to ensure that it does the right thing. llvm-svn: 204563
* MS ABI: Eliminate Duplicate StringsDavid Majnemer2014-03-236-21/+248
| | | | | | | | | | | | | | | | | | | | | COFF doesn't have mergeable sections so LLVM/clang's normal tactics for string deduplication will not have any effect. To remedy this we place each string inside it's own section and mark the section as IMAGE_COMDAT_SELECT_ANY. However, we can only do this if the string has an external name that we can generate from it's contents. To be compatible with MSVC, we must use their scheme. Otherwise identical strings in translation units from clang may not be deduplicated with translation units in MSVC. This fixes PR18248. N.B. We will not attempt to do anything with a string literal which is not of type 'char' or 'wchar_t' because their compiler does not support unicode string literals as of this date. llvm-svn: 204562
* remove a bunch of unused private methodsNuno Lopes2014-03-237-42/+0
| | | | | | | | | | | | | | | | | | found with a smarter version of -Wunused-member-function that I'm playwing with. Appologies in advance if I removed someone's WIP code. ARCMigrate/TransProperties.cpp | 8 ----- AST/MicrosoftMangle.cpp | 1 Analysis/AnalysisDeclContext.cpp | 5 --- Analysis/LiveVariables.cpp | 14 ---------- Index/USRGeneration.cpp | 10 ------- Sema/Sema.cpp | 33 +++++++++++++++++++++--- Sema/SemaChecking.cpp | 3 -- Sema/SemaDecl.cpp | 20 ++------------ StaticAnalyzer/Checkers/GenericTaintChecker.cpp | 1 9 files changed, 34 insertions(+), 61 deletions(-) llvm-svn: 204561
* remove a bunch of unused private methodsNuno Lopes2014-03-2324-261/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | found with a smarter version of -Wunused-member-function that I'm playwing with. Appologies in advance if I removed someone's WIP code. include/llvm/CodeGen/MachineSSAUpdater.h | 1 include/llvm/IR/DebugInfo.h | 3 lib/CodeGen/MachineSSAUpdater.cpp | 10 -- lib/CodeGen/PostRASchedulerList.cpp | 1 lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 10 -- lib/IR/DebugInfo.cpp | 12 -- lib/MC/MCAsmStreamer.cpp | 2 lib/Support/YAMLParser.cpp | 39 --------- lib/TableGen/TGParser.cpp | 16 --- lib/TableGen/TGParser.h | 1 lib/Target/AArch64/AArch64TargetTransformInfo.cpp | 9 -- lib/Target/ARM/ARMCodeEmitter.cpp | 12 -- lib/Target/ARM/ARMFastISel.cpp | 84 -------------------- lib/Target/Mips/MipsCodeEmitter.cpp | 11 -- lib/Target/Mips/MipsConstantIslandPass.cpp | 12 -- lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp | 21 ----- lib/Target/NVPTX/NVPTXISelDAGToDAG.h | 2 lib/Target/PowerPC/PPCFastISel.cpp | 1 lib/Transforms/Instrumentation/AddressSanitizer.cpp | 2 lib/Transforms/Instrumentation/BoundsChecking.cpp | 2 lib/Transforms/Instrumentation/MemorySanitizer.cpp | 1 lib/Transforms/Scalar/LoopIdiomRecognize.cpp | 8 - lib/Transforms/Scalar/SCCP.cpp | 1 utils/TableGen/CodeEmitterGen.cpp | 2 24 files changed, 2 insertions(+), 261 deletions(-) llvm-svn: 204560
* [PowerPC] Make use of VSX f64 <-> i64 conversion instructionsHal Finkel2014-03-234-6/+111
| | | | | | | When VSX is available, these instructions should be used in preference to the older variants that only have access to the scalar floating-point registers. llvm-svn: 204559
* Revert r204076 for now - it caused significant regressions in a number ofLang Hames2014-03-233-104/+82
| | | | | | | | benchmarks. <rdar://problem/16368461> llvm-svn: 204558
* InstrProf: Check pointer size in raw profileDuncan P. N. Exon Smith2014-03-236-15/+219
| | | | | | | | | | | | | | | Since the profile can come from 32-bit machines, we need to check the pointer size. Change the magic number to facilitate this. Adds tests for reading 32-bit and 64-bit binaries (both big- and little-endian). The tests write a binary using printf in RUN lines (like raw-magic-but-no-header.test). Assuming the bots don't complain, this seems like a better way forward for testing RawInstrProfReader than committing binary files. <rdar://problem/16400648> llvm-svn: 204557
* InstrProf: Indicate pointer size in raw profileDuncan P. N. Exon Smith2014-03-231-4/+6
| | | | | | | | | Since the profile can come from 32-bit machines, the reader needs to check the pointer size. Change the magic number to facilitate this. <rdar://problem/16400648> llvm-svn: 204556
* Propagate types from symbol to aliases.Rafael Espindola2014-03-232-1/+179
| | | | | | | | | | | | | | | | | | | | | | | This is similar, but not identical to what gas does. The logic in MC is to just compute the symbol table after parsing the entire file. GAS is mixed, given .type b, @object a = b b: .type b, @function It will propagate the change and make 'a' a function. Given .type b, @object b: a = b .type b, @function the type of 'a' is still object. Since we do the computation in the end, we produce a function in both cases. llvm-svn: 204555
* If a template instantation introduces a name into a namespace, we need to writeRichard Smith2014-03-234-0/+24
| | | | | | | out a visible update record for that namespace even if it was never declared in this module. llvm-svn: 204554
* [CMake] LLVMProfileData: No need to add LINK_LIBS here. LLVMBuild should do.NAKAMURA Takumi2014-03-231-4/+1
| | | | llvm-svn: 204553
* llvm-profdata doesn't require LLVMCore.NAKAMURA Takumi2014-03-232-2/+2
| | | | llvm-svn: 204552
* Removed unused includeAlexander Kornienko2014-03-231-1/+0
| | | | llvm-svn: 204551
* If an update record makes a declaration interesting, pass it to the consumer.Richard Smith2014-03-235-18/+39
| | | | llvm-svn: 204550
* 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
* Emit an update record if we instantiate the definition of a function templateRichard Smith2014-03-2211-1/+97
| | | | | | | | specialization from a module. (This can also happen for function template specializations in PCHs if they're instantiated eagerly, because they're constexpr or have a deduced return type.) llvm-svn: 204547
* Cleanup some dead assignements reported by scan-buildArnaud A. de Grandmaison2014-03-227-19/+7
| | | | | | No functionnal change. llvm-svn: 204545
* 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
* [Mips] Make the test to be a bit more relaxed to lld YAML output.Simon Atanasyan2014-03-221-30/+30
| | | | llvm-svn: 204541
* 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
* Revert r204493, "Make clang/test/lit.cfg pre-scan the RUN line looking for ↵NAKAMURA Takumi2014-03-221-34/+0
| | | | | | | | tool names," It was incompatible to standlalone clang build. llvm-svn: 204539
* [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
* Refactor: move loading pending instantiations from chained PCHs to a more ↵Richard Smith2014-03-223-8/+13
| | | | | | appropriate place, so that we only ask the external source once. llvm-svn: 204535
* If a single step ends on a breakpoint, it should be reported as a breakpoint hitJim Ingham2014-03-221-13/+23
| | | | | | | | even though the underlying exception is a trace exception. <rdar://problem/15243355> llvm-svn: 204534
* Suppress SupportTests.LockFileManagerTest on win32 for investigating.NAKAMURA Takumi2014-03-221-0/+2
| | | | llvm-svn: 204533
* relax testcase to unbreak windows buildbots.Adrian Prantl2014-03-211-1/+1
| | | | llvm-svn: 204531
* Delete stale comment. Thanks, Eric!Adrian Prantl2014-03-211-1/+0
| | | | llvm-svn: 204530
* When generating the Attribute dumper code, do not dead-initialize MoreChildrenArnaud A. de Grandmaison2014-03-211-1/+1
| | | | | | No functional change. This will cleanup a bunch of scan-build warnings. llvm-svn: 204529
* 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
* Be a bit smarter about what nested name qualifiers to allow whenKaelyn Uhrain2014-03-213-12/+28
| | | | | | performing typo correction on very short (1 or 2 char) identifiers. llvm-svn: 204525
* [C++11] Simplify some loops in Sema::CorrectTypo as range-based for loops.Kaelyn Uhrain2014-03-211-24/+14
| | | | llvm-svn: 204524
* Use early continues to reduce nesting.Rui Ueyama2014-03-211-117/+120
| | | | llvm-svn: 204523
* 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
* Avoid GCC's "cast from pointer to integer of different size" warning.David Blaikie2014-03-212-4/+4
| | | | | | | | This is a bit of a stab in the dark as I'm not sure I've got these source files compiling correctly locally. (and the warning only reproduces on a 32bit build anyway) llvm-svn: 204521
* [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
* Test commitAlexander Musman2014-03-211-7/+7
| | | | llvm-svn: 204519
* 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
* CGDebugInfo: At the end of EmitFunctionStart, Initialize PrevLoc to theAdrian Prantl2014-03-212-1/+28
| | | | | | | | location that the next call emitLocation() would default to. Otherwise setLocation() may wrongly believe that the current source file didn't change, when in fact it did. llvm-svn: 204517
* 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
OpenPOWER on IntegriCloud