summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Re-land r219354: Use llvm-symbolizer to symbolize LLVM/Clang crash dumps.Alexey Samsonov2014-10-103-1/+144
| | | | | | | | | | | | In fact, symbolization is now expected to work only on Linux and FreeBSD/NetBSD, where we have dl_iterate_phdr and can learn the main executable name without argv0 (it will be possible on BSD systems after http://reviews.llvm.org/D5693 lands). #ifdef-out the code for all the rest Unix systems. Reviewed in http://reviews.llvm.org/D5610 llvm-svn: 219534
* R600/SI: Add load / store machine optimizer pass.Matt Arsenault2014-10-1010-7/+1246
| | | | | | | | | | | | | Currently this only functions to match simple cases where ds_read2_* / ds_write2_* instructions can be used. In the future it might match some of the other weird load patterns, such as direct to LDS loads. Currently enabled only with a subtarget feature to enable easier testing. llvm-svn: 219533
* This patch teaches ScalarEvolution to pick and use !range metadata.Sanjoy Das2014-10-103-0/+115
| | | | | | | | | | | | It also makes it more aggressive in querying range information by adding a call to isKnownPredicateWithRanges to isLoopBackedgeGuardedByCond and isLoopEntryGuardedByCond. phabricator: http://reviews.llvm.org/D5638 Reviewed by: atrick, hfinkel llvm-svn: 219532
* [mips] Actually mark that the default case is unreachable as this switchChandler Carruth2014-10-101-1/+1
| | | | | | | | | is over a subset of condition codes. This fixes the -Werror build which warns about use of uninitialized variables in the default case. llvm-svn: 219531
* Implement floating point compare for mips fast-iselReed Kotler2014-10-102-2/+310
| | | | | | | | | | | | | | | | | | Summary: Expand SelectCmp to handle floating point compare Test Plan: fpcmpa.ll run 4 flavors of test-suite, mips32 r1/r2 O0/O2 Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits, rfuhler Differential Revision: http://reviews.llvm.org/D5567 llvm-svn: 219530
* Add libclang capabilities to retriete template arguments from specializations.Eli Bendersky2014-10-108-110/+440
| | | | | | | | | Includes Python bindings. Reviewed in http://reviews.llvm.org/D5621 Patch by Rob Springer llvm-svn: 219529
* Remove rest of the comment that is no longer true after r219527.Bob Wilson2014-10-101-4/+0
| | | | llvm-svn: 219528
* Remove a FIXME: use the ios_simulator_version_min linker option consistently.Bob Wilson2014-10-102-8/+15
| | | | | | | | | | | | This was previously only used when explicitly requested with a command line option because it had to work with some old versions of the linker when it was first introduced. That is ancient history now, and it should be safe to use the correct option even when using the IPHONEOS_DEPLOYMENT_TARGET environment variable to specify that the target is the iOS simulator. Besides updating the test for this, I also added a few more tests for the iOS linker options. llvm-svn: 219527
* Make test more robust to appease build botsDavid Majnemer2014-10-101-1/+1
| | | | llvm-svn: 219526
* Bugfix for predefined expressions in dependent context.Alexey Bataev2014-10-102-1/+8
| | | | | | This bug break compilation with precompiled headers and predefined expressions in dependent context. llvm-svn: 219525
* CodeGen: FieldMemcpyizer didn't handle copies starting inside bitfieldsDavid Majnemer2014-10-102-4/+29
| | | | | | | | | | | | | It's possible to construct cases where the first field we are trying to copy is in the middle of an IR field. In some complicated cases, we would fail to use an appropriate offset inside the object. Earlier builds of clang seemed to miscompile the code by copying an insufficient number of bytes. Up until now, we would assert: the copying offset was insufficiently aligned. This fixes PR21232. llvm-svn: 219524
* Revert "DebugInfo: Ensure that all debug location scope chains from ↵David Blaikie2014-10-102-35/+2
| | | | | | | | | | | instructions within a function, lead to the function itself." This invariant is violated (& the assertions fire) on some Objective C++ in the test-suite. Reverting while I investigate. This reverts commit r219215. llvm-svn: 219523
* Change how we distinguish bitfield widths, in-classJohn McCall2014-10-104-66/+95
| | | | | | | | initializers, and captured VLA types so that we can answer questions like "is this a bit-field" without looking at the enclosing DeclContext. NFC. llvm-svn: 219522
* llvm-ar: Start adding support for mri scripts.Rafael Espindola2014-10-106-2/+82
| | | | | | | | | | | | | | | | | | | | | | I was quiet surprised to find this feature being used. Fortunately the uses I found look fairly simple. In fact, they are just a very verbose version of the regular ar commands. Start implementing it then by parsing the script and setting the command variables as if we had a regular command line. This patch adds just enough support to create an empty archive and do a bit of error checking. In followup patches I will implement at least addmod and addlib. From the description in the manual, even the more general case should not be too hard to implement if needed. The features that don't map 1:1 to the simple command line are * Reading from multiple archives. * Creating multiple archives. llvm-svn: 219521
* Update assertion in DYLDRendezvous.Andrew MacPherson2014-10-101-1/+1
| | | | | | This accounts for the case where a dlopen() call fails when loading a library with a missing dependency. llvm-svn: 219520
* R600/SI: Disable copying of SCCMatt Arsenault2014-10-101-1/+5
| | | | llvm-svn: 219519
* implement integer compare in mips fast-iselReed Kotler2014-10-102-0/+302
| | | | | | | | | | | | | | | | | | Summary: implement SelectCmp (integer compare ) in mips fast-isel Test Plan: icmpa.ll also ran 4 test-suite flavors mips32 r1/r2 O0/O2 Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits, rfuhler, mcrosier Differential Revision: http://reviews.llvm.org/D5566 llvm-svn: 219518
* This patch de-pessimizes the calculation of loop trip counts inMark Heffernan2014-10-104-377/+335
| | | | | | | | | | | | | | | | | | | | | ScalarEvolution in the presence of multiple exits. Previously all loops exits had to have identical counts for a loop trip count to be considered computable. This pessimization was implemented by calling getBackedgeTakenCount(L) rather than getExitCount(L, ExitingBlock) inside of ScalarEvolution::getSmallConstantTripCount() (see the FIXME in the comments of that function). The pessimization was added to fix a corner case involving undefined behavior (pr/16130). This patch more precisely handles the undefined behavior case allowing the pessimization to be removed. ControlsExit replaces IsSubExpr to more precisely track the case where undefined behavior is expected to occur. Because undefined behavior is tracked more precisely we can remove MustExit from ExitLimit. MustExit was used to track the case where the limit was computed potentially assuming undefined behavior even if undefined behavior didn't necessarily occur. llvm-svn: 219517
* Add couple of missing 'override' keyword. NFC.Fariborz Jahanian2014-10-102-2/+2
| | | | llvm-svn: 219516
* [PowerPC] Reduce names from Power8Vector to P8VectorBill Schmidt2014-10-101-4/+4
| | | | | | Per Hal Finkel's review, improving typability of some variable names. llvm-svn: 219515
* [PowerPC] Reduce names from Power8Vector to P8VectorBill Schmidt2014-10-103-8/+7
| | | | | | Per Hal Finkel's review, improving typability of some variable names. llvm-svn: 219514
* Alright, just XFAIL all these for Windows.Dan Albert2014-10-102-11/+10
| | | | | | | I'm going to fix up FileCheck to better handle things like this soon, but for now let's just unblock the Windows people. llvm-svn: 219513
* [MiSched] Fix a logic error in tryPressure()Hal Finkel2014-10-103-5/+7
| | | | | | | | | | | | | Fixes a logic error in the MachineScheduler found by Steve Montgomery (and confirmed by Andy). This has gone unfixed for months because the fix has been found to introduce some small performance regressions. However, Andy has recommended that, at this point, we fix this to avoid further dependence on the incorrect behavior (and then follow-up separately on any regressions), and I agree. Fixes PR18883. llvm-svn: 219512
* Implement floating point to integer conversion in mips fast-iselReed Kotler2014-10-102-1/+104
| | | | | | | | | | | | | | | | | | Summary: Add the ability to convert 64 or 32 bit floating point values to integer in mips fast-isel Test Plan: fpintconv.ll ran 4 flavors of test-suite with no errors, misp32 r1/r2 O0/O2 Reviewers: dsanders Reviewed By: dsanders Subscribers: llvm-commits, rfuhler, mcrosier Differential Revision: http://reviews.llvm.org/D5562 llvm-svn: 219511
* Simplify a few uses of DwarfDebug::SPMapDavid Blaikie2014-10-102-22/+4
| | | | llvm-svn: 219510
* Fix documentation typo.JF Bastien2014-10-101-1/+1
| | | | llvm-svn: 219509
* Reorder functions in WinCodeViewLineTables.cpp [NFC]Timur Iskhodzhanov2014-10-101-51/+53
| | | | | | This helps read the comments and understand the code in a natural order llvm-svn: 219508
* [dwarfdump] Prettyprint DW_AT_APPLE_property_attribute bitfield values.Frederic Riss2014-10-104-0/+75
| | | | | | | | | | | | | This change depends on the ApplePropertyString helper that I sent spearately. Not sure how you want this tested: as a tool test by adding a binary to dump, or as an llvm test starting from an IR file? Reviewers: dblaikie, samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5689 llvm-svn: 219507
* [dwarfdump] Resolve also variable specifications/abstract_origins.Frederic Riss2014-10-1011-55/+68
| | | | | | | | | | | | | | | | | DW_AT_specification and DW_AT_abstract_origin resolving was only performed on subroutine DIEs because it used the getSubroutineName method. Introduce a more generic getName() and use it to dump the reference attributes. Testcases have been updated to check the printed names instead of the offsets except when the name could be ambiguous. Reviewers: dblaikie, samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5625 llvm-svn: 219506
* Reduce double set lookups. NFC.Benjamin Kramer2014-10-105-17/+8
| | | | llvm-svn: 219505
* Reduce double set lookups. NFC.Benjamin Kramer2014-10-105-17/+7
| | | | llvm-svn: 219504
* Relax the condition on the jsop accesses regarding the alignment.Johannes Doerfert2014-10-103-12/+92
| | | | | | | | | | | We restricted the new access functions to be a subset of the old one because we want to keep the alignment, however if the alignment is "not special", thus the default for the type, we can allow any access. Differential Revision: http://reviews.llvm.org/D5680 llvm-svn: 219503
* [PowerPC] Add feature for Power8 vector extensionsBill Schmidt2014-10-104-1/+26
| | | | | | | | | | | | | | | | | | The current VSX feature for PowerPC specifies availability of the VSX instructions added with the 2.06 architecture version. With 2.07, the architecture adds new instructions to both the Category:Vector and Category:VSX instruction sets. Additionally, unaligned vector storage operations have improved performance. This patch adds a feature to provide access to the new instructions and performance capabilities of Power8. For compatibility with GCC, the feature is controlled via a new -mpower8-vector switch, and the feature causes the __POWER8_VECTOR__ builtin define to be generated by the preprocessor. There is a companion patch for llvm being committed at the same time. llvm-svn: 219502
* [PowerPC] Add feature for Power8 vector extensionsBill Schmidt2014-10-103-2/+10
| | | | | | | | | | | | | | | | | | The current VSX feature for PowerPC specifies availability of the VSX instructions added with the 2.06 architecture version. With 2.07, the architecture adds new instructions to both the Category:Vector and Category:VSX instruction sets. Additionally, unaligned vector storage operations have improved performance. This patch adds a feature to provide access to the new instructions and performance capabilities of Power8. For compatibility with GCC, the feature is controlled via a new -mpower8-vector switch, and the feature causes the __POWER8_VECTOR__ builtin define to be generated by the preprocessor. There is a companion patch for cfe being committed at the same time. llvm-svn: 219501
* [mips][microMIPS] Implement ADDIUSP instructionZoran Jovanovic2014-10-107-0/+52
| | | | | | Differential Revision: http://reviews.llvm.org/D5084 llvm-svn: 219500
* Use the new access function (if present) to compute the access stride.Johannes Doerfert2014-10-102-1/+50
| | | | | | Differential Revision: http://reviews.llvm.org/D5661 llvm-svn: 219499
* [mips][microMIPS] Implement JR16 instructionZoran Jovanovic2014-10-102-0/+15
| | | | | | Differential Revision: http://reviews.llvm.org/D5062 llvm-svn: 219498
* Unfriend CGOpenMPRegionInfo so it can go into an anonymous namespace.Benjamin Kramer2014-10-102-8/+4
| | | | | | Also remove some unnecessary virtual keywords. NFC. llvm-svn: 219497
* [asan][mips] Adding support of asan for mipsel archPetar Jovanovic2014-10-102-2/+2
| | | | | | | | | | | cmake/config-ix.cmake: Enabled building of asan for mipsel arch test/asan/CMakeLists.txt: Enabled testing of asan for mipsel Patch by Kumar Sukhani Differential Revision: http://reviews.llvm.org/D5615 llvm-svn: 219496
* [mips][microMIPS] Implement ADDIUS5 instructionZoran Jovanovic2014-10-105-0/+48
| | | | | | Differential Revision: http://reviews.llvm.org/D5049 llvm-svn: 219495
* ps][microMIPS] Implement JRC instructionZoran Jovanovic2014-10-102-2/+16
| | | | | | Differential Revision: http://reviews.llvm.org/D5045 llvm-svn: 219494
* [mips][microMIPS] Implement JALRS16 instructionZoran Jovanovic2014-10-103-0/+16
| | | | | | Differential Revision: http://reviews.llvm.org/D5027 llvm-svn: 219493
* Fix a small typo, NFCTimur Iskhodzhanov2014-10-101-1/+1
| | | | llvm-svn: 219492
* Fixing the MSVC 2013 build, NFC.Aaron Ballman2014-10-101-0/+3
| | | | llvm-svn: 219491
* Code reformatting and improvement for OpenMP.Alexey Bataev2014-10-105-108/+148
| | | | | | Moved CGOpenMPRegionInfo from CGOpenMPRuntime.h to CGOpenMPRuntime.cpp file and reworked the code for this change. Also added processing of ThreadID variable passed as an argument in outlined functions in parallel and task directives. llvm-svn: 219490
* Disabling main() check on UBSAN, since the noreturn check is already madeRenato Golin2014-10-101-2/+0
| | | | llvm-svn: 219488
* APInt: Unfold return expressions so RVO can work.Benjamin Kramer2014-10-101-10/+28
| | | | | | Saves a couple of expensive deep copies. NFC. llvm-svn: 219487
* Code improvements in OpenMP CodeGen.Alexey Bataev2014-10-103-71/+108
| | | | | | This patch makes class OMPPrivateScope a common class for all private variables. Reworked processing of firstprivate variables (now it is based on OMPPrivateScope too). llvm-svn: 219486
* [ADT] Add an (ADL-friendly) abs free function for APFloat that returnsChandler Carruth2014-10-102-0/+44
| | | | | | by value having cleared the sign bit. llvm-svn: 219485
* Don't use an unqualified 'abs' function call with a builtin type.Chandler Carruth2014-10-101-2/+3
| | | | | | | | | | | | | | | | This is dangerous for numerous reasons. The primary risk here is with floating point or double types where if the wrong header files are included in a strange order this can implicitly convert to integers and then call the C abs function on the integers. There is a secondary risk that even impacts integers where if the namespace the code is written in ever defines an abs overload for types within that namespace the global abs will be hidden. The correct form is to call std::abs or write 'using std::abs' for builtin types (and only the latter is correct in any generic context). I've also added the requisite header to be a bit more explicit here. llvm-svn: 219484
OpenPOWER on IntegriCloud