summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Sparc] Add sparc to the list of XFAIL architecture. It seems that the ↵Venkatraman Govindaraju2014-01-251-1/+1
| | | | | | llvm-cov test is not supported in big-endian architectures. llvm-svn: 200101
* Set displacementSize to 1 for instrucitons with mod==0x1. Fixes PR17310. ↵Craig Topper2014-01-251-0/+3
| | | | | | Modified from patch by James Courtier-Dutton. llvm-svn: 200100
* PR18530: Don't assert when performing error recovery after a missing ↵Richard Smith2014-01-252-12/+12
| | | | | | 'template<>' on a variable template explicit specialization. llvm-svn: 200099
* PR18283: If a const variable of integral or enumeration type isRichard Smith2014-01-252-1/+20
| | | | | | | | initialized from a constant expression in C++98, it can be used in constant expressions, even if it was brace-initialized. Patch by Rahul Jain! llvm-svn: 200098
* Add a TBAA CodeGen failure test caseHal Finkel2014-01-251-0/+41
| | | | | | | | | I disabled the use of TBAA in CodeGen in r200093. This adds a test case that demonstrates the problems with inttoptr and TBAA in CodeGen (and, specifically, the problem that causes LLVM to miscompile itself in Release mode). This test will currently fail if -use-tbaa-in-sched-mi is enabled. llvm-svn: 200097
* unittests: explicit stringify StringRefs for conversionSaleem Abdulrasool2014-01-253-7/+9
| | | | | | | | | When clang is built outside of the LLVM tree (against a corresponding version), there is no definition providing for operator<<(std::ostream &, StringRef) which is required for the assertion routines in google-test tests. Avoid the compilation failure by explicitly stringifying the StringRef prior to use. llvm-svn: 200096
* Clean up hack which is no longer needed after r198617. No functionality change.Evan Cheng2014-01-251-3/+2
| | | | llvm-svn: 200095
* XFAIL test/CodeGen/SystemZ/alias-01.ll which requires CodeGen TBAAHal Finkel2014-01-251-0/+3
| | | | llvm-svn: 200094
* Disable the use of TBAA when using AA in CodeGenHal Finkel2014-01-253-4/+32
| | | | | | | | | | | | | | | | | There are currently two issues, of which I currently know, that prevent TBAA from being correctly usable in CodeGen: 1. Stack coloring does not update TBAA when merging allocas. This is easy enough to fix, but is not the largest problem. 2. CGP inserts ptrtoint/inttoptr pairs when sinking address computations. Because BasicAA does not handle inttoptr, we'll often miss basic type punning idioms that we need to catch so we don't miscompile real-world code (like LLVM). I don't yet have a small test case for this, but this fixes self hosting a non-asserts build of LLVM on PPC64 when using -enable-aa-sched-mi and -misched=shuffle. llvm-svn: 200093
* Remove FIXME comments about tids on FreeBSD that no longer applyEd Maste2014-01-251-16/+0
| | | | | | Spotted by John Wolfe. llvm-svn: 200092
* Don't use EnforceSmallerThan for EnforceVectorSubVectorTypeIs. ↵Craig Topper2014-01-251-2/+53
| | | | | | EnforceSmallerThan doesn't handle vectors quite right and should really enforce that vectors have the same number of elements. Add explicit checks for vector element count differing in EnforceVectorSubVectorTypeIs instead. This removes some unnecessary type checks in X86GenDAGISel.inc. llvm-svn: 200091
* Fix "llvm-objdump -d -r" to show relocations inline for ELF filesMark Seaborn2014-01-252-6/+58
| | | | | | | | | | | | | | | | | | | This fixes a regression introduced by r182908, which broke llvm-objdump's ability to display relocations inline in a disassembly dump for ELF object files. That change removed a SectionRelocMap from Object/ELF.h, which we recreate in llvm-objdump.cpp. I discovered this regression via an out-of-tree test (test/NaCl/X86/pnacl-hides-sandbox-x86-64.ll) which used llvm-objdump. Note that the "Unknown" string in the test output on i386 isn't quite right, but this appears to be a pre-existing bug. Differential Revision: http://llvm-reviews.chandlerc.com/D2559 llvm-svn: 200090
* Fix typo in commment tyep->type.Craig Topper2014-01-251-1/+1
| | | | llvm-svn: 200089
* Add combiner-aa-only-func (debug only)Hal Finkel2014-01-251-0/+22
| | | | | | | | | This option (which is !NDEBUG only) allows restricting the use of alias analysis in DAGCombiner to a specific function. This has proved extremely valuable to isolating bugs related to this feature, and mirrors the misched-only-func option provided by the new instruction scheduler. llvm-svn: 200088
* Improve descriptions of combiner-alias-analysis and ↵Hal Finkel2014-01-251-2/+2
| | | | | | combiner-global-alias-analysis llvm-svn: 200087
* Remove obsolete ObjCMethodDecl arg_type iterator functionsAlp Toker2014-01-252-11/+3
| | | | | | These were set into deprecation in r199773. llvm-svn: 200086
* Track clang changes from r200082Alp Toker2014-01-251-3/+3
| | | | llvm-svn: 200085
* Track clang changes from r200082Alp Toker2014-01-251-1/+1
| | | | llvm-svn: 200084
* Reverting r199886 (Prevent repetitive warnings for unrecognized processors ↵Artyom Skrobov2014-01-254-59/+27
| | | | | | and features) llvm-svn: 200083
* Rename getResultType() on function and method declarations to getReturnType()Alp Toker2014-01-2581-726/+650
| | | | | | | | | | | | | | | A return type is the declared or deduced part of the function type specified in the declaration. A result type is the (potentially adjusted) type of the value of an expression that calls the function. Rule of thumb: * Declarations have return types and parameters. * Expressions have result types and arguments. llvm-svn: 200082
* [Mips] Add support for mips64el-linux-android triple.Simon Atanasyan2014-01-253-1/+32
| | | | llvm-svn: 200081
* [Mips] Add test to check translation MIPS triples to cpu and float abiSimon Atanasyan2014-01-251-0/+35
| | | | | | options. llvm-svn: 200080
* Added .DS_Store entry in .gitignore for ignoring .DS_Store files in the sourceRafael Espindola2014-01-251-0/+2
| | | | | | | | tree generated by OS X. Patch by Abhay Kadam! llvm-svn: 200079
* This reverts commit r200064 and r200051.Rafael Espindola2014-01-259-206/+120
| | | | | | | | | | | | | | | | | | | r200064 depends on r200051. r200051 is broken: I tries to replace .mips_hack_elf_flags, which is a good thing, but what it replaces it with is even worse. The new emitMipsELFFlags it adds corresponds to no assembly directive, is not marked as a hack and is not even printed to the .s file. The patch also introduces more uses of hasRawTextSupport. The correct way to remove .mips_hack_elf_flags is to have the mips target streamer handle the default flags (and command line options). That way the same code path is used for asm and obj. The streamer interface should *really* correspond to what is printed in the .s file. llvm-svn: 200078
* PlistSupport: Eliminate duplicated EmitLocation() and EmitRange() functionsAlp Toker2014-01-253-24/+16
| | | | llvm-svn: 200077
* Attempt to stabilize the Windows builderAlp Toker2014-01-251-1/+2
| | | | llvm-svn: 200076
* PlistSupport: Unify ARCMigrate / StaticAnalyzer plist writersAlp Toker2014-01-253-154/+117
| | | | | | | | Reduces the ARCMT migrator plist writer down to a single function, arcmt::writeARCDiagsToPlist() which shares supporting functions with the analyzer plist writer. llvm-svn: 200075
* [LPM] Conclude my immediate work by making the LoopVectorizerChandler Carruth2014-01-251-8/+37
| | | | | | | | | | | | a FunctionPass. With this change the loop vectorizer no longer is a loop pass and can readily depend on function analyses. In particular, with this change we no longer have to form a loop pass manager to run the loop vectorizer which simplifies the entire pass management of LLVM. The next step here is to teach the loop vectorizer to leverage profile information through the profile information providing analysis passes. llvm-svn: 200074
* clang-format: Fix incorrect space removal.Daniel Jasper2014-01-252-1/+6
| | | | | | | | | | | | Before: Deleted &operator=(const Deleted &)&= default; Deleted &operator=(const Deleted &)&&= delete; After: Deleted &operator=(const Deleted &)& = default; Deleted &operator=(const Deleted &)&& = delete; llvm-svn: 200073
* Support for debugging against a remote stock gdbserver.Steve Pucci2014-01-253-3/+189
| | | | | | | | | | There are a couple of pieces: * some lazy-evaluation members that store info listed in a qSupported response * new method SendPacketsAndConcatenateResponses which is used for fetching fixed-size objects from the remote gdbserver by using multiple packets if necessary (first use will be to fetch shared-library XML files). llvm-svn: 200072
* Use isConcrete and getConcrete instead of using TypeVec directly.Craig Topper2014-01-251-3/+3
| | | | llvm-svn: 200071
* Fix EnforceSmallerThan to check !hasVectorTypes on the other type instead of ↵Craig Topper2014-01-251-1/+1
| | | | | | this type to force this type to be scalar. llvm-svn: 200070
* Change DataExtractor's ReadInt* and ReadSwapInt* routines, as well asJason Molenda2014-01-251-16/+52
| | | | | | | | | | | | | GetU32 and GetU64, to use memcpy to copy bytes into a local buffer instead of having a (uint64_t *) etc local variable, pointing to the address, and dereferencing it. If compiled on a CPU where data alignment is required (e.g. the LDM instruction on armv7) and we try to GetU64 out of a mmap'ed DWARF file, that 8 byte quantity may not be world aligned and the program can get an unaligned memory access fault. <rdar://problem/15849231> llvm-svn: 200069
* Note that qHostInfo prints the cputype and cpusubtype in base10;Jason Molenda2014-01-251-4/+4
| | | | | | qProcessInfo prints the cputype and cpusubtype in base16. llvm-svn: 200068
* [LPM] Make LCSSA a utility with a FunctionPass that applies it to allChandler Carruth2014-01-256-182/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the loops in a function, and teach LICM to work in the presance of LCSSA. Previously, LCSSA was a loop pass. That made passes requiring it also be loop passes and unable to depend on function analysis passes easily. It also caused outer loops to have a different "canonical" form from inner loops during analysis. Instead, we go into LCSSA form and preserve it through the loop pass manager run. Note that this has the same problem as LoopSimplify that prevents enabling its verification -- loop passes which run at the end of the loop pass manager and don't preserve these are valid, but the subsequent loop pass runs of outer loops that do preserve this pass trigger too much verification and fail because the inner loop no longer verifies. The other problem this exposed is that LICM was completely unable to handle LCSSA form. It didn't preserve it and it actually would give up on moving instructions in many cases when they were used by an LCSSA phi node. I've taught LICM to support detecting LCSSA-form PHI nodes and to hoist and sink around them. This may actually let LICM fire significantly more because we put everything into LCSSA form to rotate the loop before running LICM. =/ Now LICM should handle that fine and preserve it correctly. The down side is that LICM has to require LCSSA in order to preserve it. This is just a fact of life for LCSSA. It's entirely possible we should completely remove LCSSA from the optimizer. The test updates are essentially accomodating LCSSA phi nodes in the output of LICM, and the fact that we now completely sink every instruction in ashr-crash below the loop bodies prior to unrolling. With this change, LCSSA is computed only three times in the pass pipeline. One of them could be removed (and potentially a SCEV run and a separate LoopPassManager entirely!) if we had a LoopPass variant of InstCombine that ran InstCombine on the loop body but refused to combine away LCSSA PHI nodes. Currently, this also prevents loop unrolling from being in the same loop pass manager is rotate, LICM, and unswitch. There is one thing that I *really* don't like -- preserving LCSSA in LICM is quite expensive. We end up having to re-run LCSSA twice for some loops after LICM runs because LICM can undo LCSSA both in the current loop and the parent loop. I don't really see good solutions to this other than to completely move away from LCSSA and using tools like SSAUpdater instead. llvm-svn: 200067
* Initialize the named_pipe_path in ↵Jason Molenda2014-01-251-7/+1
| | | | | | | | | | GDBRemoteCommunication::StartDebugserverProcess right after the space for it is allocated on the stack, instead of trying to initialize it in all the different places in this method. It's too easy for another uninitialized code path to sneak in as it is written right now. llvm-svn: 200066
* Remove an easy use of EmitRawText from PPC.Rafael Espindola2014-01-254-7/+19
| | | | | | This makes lib/Target/PowerPC EmitRawText free. llvm-svn: 200065
* [Mips] Move 2 test cases from MC to CodeGen.Jack Carter2014-01-252-0/+0
| | | | | | No code changes. Just reassignment of test case files. llvm-svn: 200064
* Revert "Revert "Add Constant Hoisting Pass" (r200034)"Juergen Ributzka2014-01-2521-41/+723
| | | | | | | This reverts commit r200058 and adds the using directive for ARMTargetTransformInfo to silence two g++ overload warnings. llvm-svn: 200062
* One more intrinsic.Eric Christopher2014-01-251-0/+2
| | | | llvm-svn: 200061
* Remove HTML codes from a .rst file. The proper HTML code will be added backRichard Trieu2014-01-251-2/+2
| | | | | | when the .html file is generated. llvm-svn: 200060
* Fix llvm-dis to print the inalloca bit on allocas.Reid Kleckner2014-01-251-0/+2
| | | | llvm-svn: 200059
* Revert "Add Constant Hoisting Pass" (r200034)Hans Wennborg2014-01-2520-722/+40
| | | | | | | | | | | | | | | This commit caused -Woverloaded-virtual warnings. The two new TargetTransformInfo::getIntImmCost functions were only added to the superclass, and to the X86 subclass. The other targets were not updated, and the warning highlighted this by pointing out that e.g. ARMTTI::getIntImmCost was hiding the two new getIntImmCost variants. We could pacify the warning by adding "using TargetTransformInfo::getIntImmCost" to the various subclasses, or turning it off, but I suspect that it's wrong to leave the functions unimplemnted in those targets. The default implementations return TCC_Free, which I don't think is right e.g. for ARM. llvm-svn: 200058
* Broaden -Wstring-conversion to catch string literals in logical or expressions.Richard Trieu2014-01-252-6/+13
| | | | | | | | | | | | Previously, string literals were ignored in all logical expressions. This reduces it to only ignore in logical and expressions. assert(0 && "error"); // No warning assert(0 || "error"); // Warn Fixes PR17565 llvm-svn: 200056
* Add a proper test for -Wsystem-headersAlp Toker2014-01-251-0/+33
| | | | | | This will be extended as we fix issues in the current implementation. llvm-svn: 200054
* llvm-objdump: Some style cleanups to follow LLVM coding styleMark Seaborn2014-01-251-56/+69
| | | | | | | | | | | | Rename "ec" to "EC", and rename some iterators. Then fix whitespace using clang-format-diff. (As requested in http://llvm-reviews.chandlerc.com/D2559) Differential Revision: http://llvm-reviews.chandlerc.com/D2594 llvm-svn: 200053
* [PECOFF] Use a shorter name for the PECOFF writer member.Rui Ueyama2014-01-251-15/+14
| | | | llvm-svn: 200052
* [Mips] TargetStreamer ELF flag Support for default and commandline options.Jack Carter2014-01-258-76/+162
| | | | | | | | | | | | | | | This patch uses a common MipsTargetSteamer interface for both MipsAsmPrinter and MipsAsmParser for recording default and commandline driven directives that affect ELF header flags. It has been noted that the .ll tests affected by this patch belong in test/Codegen/Mips. I will move them in a separate patch. Also, a number of directives do not get expressed by AsmPrinter in the resultant .s assembly such as setting the correct ASI. I have noted this in the tests and they will be addressed in later patches. llvm-svn: 200051
* Typo fix.Aaron Ballman2014-01-241-1/+1
| | | | llvm-svn: 200050
* Fix crash on Linux if sem_wait() is interrupted.Todd Fiala2014-01-241-2/+12
| | | | | | Patch by Andrew MacPherson. llvm-svn: 200049
OpenPOWER on IntegriCloud