summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mi-sched: update PressureDiffs on-the-fly for liveness.Andrew Trick2013-08-306-31/+97
| | | | | | | This removes all expensive pressure tracking logic from the scheduling critical path of node comparison. llvm-svn: 189643
* Replace LiveInterval::killedAt with isKilledAtInstr.Andrew Trick2013-08-303-10/+11
| | | | | | Return true for LRGs that end at EarlyClobber or Register slots. llvm-svn: 189642
* mi-sched: improve the generic register pressure comparison.Andrew Trick2013-08-305-34/+29
| | | | | | | Only compare pressure within the same set. When multiple sets are affected, we prioritize the most constrained set. llvm-svn: 189641
* mi-sched: Precompute a PressureDiff for each instruction, adjust for ↵Andrew Trick2013-08-3011-101/+391
| | | | | | | | | | | | | liveness later. Created SUPressureDiffs array to hold the per node PDiff computed during DAG building. Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs. Updating for liveness will come next. llvm-svn: 189640
* [PowerPC] Handle selection of compare instructions in fast-isel.Bill Schmidt2013-08-302-0/+307
| | | | | | | Mostly trivial patch adding support for compares. The meat of the work was added with the branch support. llvm-svn: 189639
* Remove bogus debug statement. Sheesh.Bill Schmidt2013-08-301-4/+2
| | | | llvm-svn: 189638
* [PowerPC] Miscellaneous fast-isel test cases.Bill Schmidt2013-08-304-0/+131
| | | | | | | Here are a few more tests that now pass after the recent fast-isel commits. llvm-svn: 189637
* [PowerPC] Add loads, stores, and related things to fast-isel.Bill Schmidt2013-08-306-7/+1210
| | | | | | | | | | | | | | | | | | | | | | | | | This is the next big chunk of fast-isel code. The primary purpose is to implement selection of loads and stores, but there is a lot of drag-along to support this. The common code to analyze addresses for both loads and stores is substantial. It's also necessary to add the materialization code for global values. Related to load-store processing is the code to fold loads into integer extends, since otherwise we generate lots of redundant instructions. We also need to add some overrides to some FastEmit routines to ensure we don't assign GPR 0 to a virtual register when this would change the meaning of an instruction. I added handling selection of a few binary arithmetic instructions, to enable committing some test cases I wrote a while back. Finally, ap couple of miscellaneous changes: * I cleaned up some poor style from a previous patch in PPCISelLowering.cpp, pointed out by David Blaikie. * I enlarged the Addr.Offset field to avoid sign problems with 32-bit offsets. llvm-svn: 189636
* comment typoAndrew Trick2013-08-301-1/+1
| | | | llvm-svn: 189635
* LWG Issue 2128: Implement global cbegin/rbegin/cend/rbeginMarshall Clow2013-08-303-1/+232
| | | | llvm-svn: 189634
* Pass the special backend option to this test for now to get it passingEric Christopher2013-08-301-3/+2
| | | | | | | | | again. This test should a) test IR or be moved, and b) get an actual option for the dwarf pub sections. llvm-svn: 189633
* Random cleanup: No need to use a std::vector here, since ↵Bill Wendling2013-08-301-5/+4
| | | | | | createInternalizePass uses an ArrayRef. llvm-svn: 189632
* Don't bother emitting the pubtypes section on darwin since there aren'tEric Christopher2013-08-302-8/+4
| | | | | | any maintained consumers of it on that platform. llvm-svn: 189631
* Reformat slightly.Eric Christopher2013-08-301-4/+4
| | | | llvm-svn: 189630
* Map from local decl IDs to global decl IDs when lazily deserializing friend ↵Richard Smith2013-08-305-3/+24
| | | | | | decl chains. llvm-svn: 189629
* ObjectiveC migrator: User of hexadecimal enumeratorFariborz Jahanian2013-08-303-8/+49
| | | | | | should infer migration to NS_OPTIONS. llvm-svn: 189628
* Be lazier when loading KeyFunctions from PCH/modules. We don't need to loadRichard Smith2013-08-294-22/+28
| | | | | | | | | | | | | | these in eagerly if we're not actually processing a translation unit. The added laziness here also avoids us loading in parts of a CXXRecordDecl earlier than an upcoming class template specialization merging patch would like. Ideally, we should mark the vtable as used when we see a definition for the key function, rather than having a separate pass over dynamic classes at the end of the TU. The existing approach is pretty bad for PCH/modules, since it forcibly loads the declarations of all key functions in all imported modules, whether or not those key functions are defined. llvm-svn: 189627
* Glen: Remove unneeded _LIBCPP_ALWAYS_INLINE.Howard Hinnant2013-08-291-1/+1
| | | | llvm-svn: 189626
* Adjust clang for change to APFloat::toString.Eli Friedman2013-08-296-11/+28
| | | | | | | | I changed the diagnostic printing code because it's probably better to cut off a digit from DBL_MAX than to print something like 1.300000001 when the user wrote 1.3. llvm-svn: 189625
* Change default # of digits for APFloat::toStringEli Friedman2013-08-292-9/+13
| | | | | | | | | | | | | | | | | This is a re-commit of r189442; I'll follow up with clang changes. The previous default was almost, but not quite enough digits to represent a floating-point value in a manner which preserves the representation when it's read back in. The larger default is much less confusing. I spent some time looking into printing exactly the right number of digits if a precision isn't specified, but it's kind of complicated, and I'm not really sure I understand what APFloat::toString is supposed to output for FormatPrecision != 0 (or maybe the current API specification is just silly, not sure which). I have a WIP patch if anyone is interested. llvm-svn: 189624
* Xing Xue: Some minor changes for IBM XLC++/AIX.Howard Hinnant2013-08-293-3/+6
| | | | llvm-svn: 189623
* Debug Info: generate a unique identifier for C++ struct, class, union, and enum.Manman Ren2013-08-2915-65/+105
| | | | | | | | | | | | | | | | We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to retained types by DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. And it will check for the error message. llvm-svn: 189622
* DIBuilder: retain a type when created with a unique identifier.Manman Ren2013-08-292-4/+27
| | | | | | | | | | | | | | | createClassType, createStructType, createUnionType, createEnumerationType, and createForwardDecl will retain a type when created with a unique identifier, to make sure they are treated as used even when all uses are replaced with the identifiers. Use TrackingVH<MDNode> instead of MDNode in AllRetainTypes, since the created node can later be updated. The change will be tested when clients of DIBuilder start to pass in non-empty unique identifier. llvm-svn: 189621
* [dfsan] Add a syms file.Peter Collingbourne2013-08-292-1/+6
| | | | llvm-svn: 189620
* ARM: Improve pattern for isel mul of vector by scalar.Jim Grosbach2013-08-292-0/+29
| | | | | | | | | | | In addition to recognizing when the multiply's second argument is coming from an explicit VDUPLANE, also look for a plain scalar f32 reference and reference it via the corresponding vector lane. rdar://14870054 llvm-svn: 189619
* Tidy up. Comment grammar.Jim Grosbach2013-08-291-2/+2
| | | | llvm-svn: 189618
* Tidy up. Trailing whitespace.Jim Grosbach2013-08-291-39/+39
| | | | llvm-svn: 189617
* Consumed analysis: track function parameters.DeLesley Hutchins2013-08-293-10/+43
| | | | | | Patch by chris.wailes@gmail.com. llvm-svn: 189616
* Substitute LLVM's version into the msbuild property file at config timeReid Kleckner2013-08-294-30/+37
| | | | | | | Requires shuffling the CPack code up before add_subdirectory(tools), but that's where the version settings are anyway. llvm-svn: 189615
* [PECOFF] Add /force:unresolved command line option as a synonym of /force.Rui Ueyama2013-08-293-1/+9
| | | | llvm-svn: 189614
* Modified ms-build configuration file to be version locked to the VS2010 ↵Warren Hunt2013-08-291-19/+2
| | | | | | | | toolchain, this avoids conflicts with having VS2012 and Win7SDK used at the same time. llvm-svn: 189613
* Consumed analysis: non-const methods no longer transfer an object into anDeLesley Hutchins2013-08-293-22/+9
| | | | | | unknown state. Patch by chris.wailes@gmail.com. llvm-svn: 189612
* Enable MCJIT on FreeBSDEd Maste2013-08-291-4/+0
| | | | | | | | | | | Testing shows it works for at least trivial cases, while the USE_STANDARD_JIT case does not even work for those. Thus, don't define USE_STANDARD_JIT on FreeBSD. I've left the #if block choosing the appropriate #include in case it's useful for testing. llvm-svn: 189611
* Turn off extern templates for most uses. It is causing more problems than ↵Howard Hinnant2013-08-296-1/+10
| | | | | | it is worth. The extern templates will still be built into the dylib, mainly for ABI stability purposes. And the client can still turn these back on with a #define if desire. This fixes http://llvm.org/bugs/show_bug.cgi?id=17027. However there's no associated test for the test suite because http://llvm.org/bugs/show_bug.cgi?id=17027 needs mismatched dylib and headers to fire. llvm-svn: 189610
* Debug Info: this reverts commit r189600.Manman Ren2013-08-2915-128/+66
| | | | | | | | We had further discussions on how to retain types, whether to do it in front end or in DIBuilder. And we agree to do it in DIBuilder so front ends generating unique identifier do not need to worry about retaining them. llvm-svn: 189609
* Fix FreeBSD build after r189295Ed Maste2013-08-291-1/+1
| | | | llvm-svn: 189608
* Perform thread lookup after RefreshStateAfterStop()Ed Maste2013-08-291-2/+2
| | | | | | This fixes a crash on FreeBSD llvm-svn: 189607
* Silencing the warning from r189605 in a more conformant manner.Aaron Ballman2013-08-291-1/+1
| | | | llvm-svn: 189606
* Silencing a rather spurious warning from MSVC 11 about not all control paths ↵Aaron Ballman2013-08-291-0/+1
| | | | | | returning a value (hint: they do). llvm-svn: 189605
* Clean up some usage of Triple. The base class has methods for determining ↵Cameron Esfahani2013-08-298-15/+17
| | | | | | if the target is iOS and Linux. llvm-svn: 189604
* Change the two last remaining _LIBCPP_CANTTHROW to _NOEXCEPTJean-Daniel Dupas2013-08-291-2/+2
| | | | llvm-svn: 189603
* Typo: I wrote "2058" into the status column for issue 2058 instead of "Complete"Marshall Clow2013-08-291-1/+1
| | | | llvm-svn: 189602
* Mark LWG issues 2109, 222, 2058, 2091 and 2092 as complete. No changes to ↵Marshall Clow2013-08-291-5/+5
| | | | | | libc++ code. llvm-svn: 189601
* Debug Info: generate a unique identifier for C++ struct, class, union, and enum.Manman Ren2013-08-2915-66/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | We use CXX mangler to generate unique identifier for external C++ struct, union, class and enum. Types with unique identifier are added to RetainedTypes to make sure they are treated as used even when all uses are replaced with the identifiers. A single type can be added to RetainedTypes multiple times. For example, both createForwardDecl and createLimitedType can add the same type to RetainedTypes. A set is used to avoid duplication when updating AllRetainTypes in DIBuilder. Testing cases are updated to reflect the unique identifier generated for types. The order of MDNodes is changed because of retained types and testing cases are updated accordingly. Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since uuid is not yet handled in Itanium mangler. We choose to update RetainedTypes in clang, then at finalize(), we update AllRetainTypes in DIBuilder. The other choice is to update AllRetainTypes in DIBuilder when creating a DICompositeType with unique identifier. This option requires using ValueHandle for AllRetainTypes in DIBuilder since the created DICompositeType can be modified later on by setContainingType etc. llvm-svn: 189600
* Fix the following error when NDEBUG is defined:Kaelyn Uhrain2013-08-291-3/+0
| | | | | | | | | | include/llvm/Support/UnicodeCharRanges.h:56:5: error: use of this statement in a constexpr constructor is a C++1y extension [-Werror,-Wc++1y-extensions] assert(rangesAreValid()); ^ llvm-svn: 189599
* Disable stub Host::FindProcesses on FreeBSDEd Maste2013-08-291-3/+1
| | | | | | A FreeBSD implementation was added in r189295. llvm-svn: 189598
* Comment and revise the cyclic critical path code.Andrew Trick2013-08-294-75/+119
| | | | | | This should be much more clear now. It's still disabled pending testing. llvm-svn: 189597
* Fix warning about anonymous structs in anonymous unions.Eric Christopher2013-08-291-6/+8
| | | | llvm-svn: 189596
* Better support for multiline string literals (including C++11 raw string ↵Alexander Kornienko2013-08-296-29/+115
| | | | | | | | | | | | | | | | | | literals). Summary: Calculate characters in the first and the last line correctly so that we only break before the literal when needed. Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D1544 llvm-svn: 189595
* Consumed analysis: improve handling of conditionals.DeLesley Hutchins2013-08-294-246/+770
| | | | | | | | | | | | | | Patch by chris.wailes@gmail.com. * The TestedVarsVisitor was folded into the ConsumedStmtVisitor. * The VarTestResult class was updated to allow these changes. * The PropagationInfo class was updated for the same reasons. * Correctly handle short-circuiting of Boolean operations. * Blocks are now marked as unreachable when we can statically prove we will never branch to them. * Unreachable blocks are skipped by the analysis. llvm-svn: 189594
OpenPOWER on IntegriCloud