summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Attempt to fix PR11607 by shuffling around which class defines which methods.Eli Friedman2011-12-192-7/+12
| | | | llvm-svn: 146897
* Tidy up. Simplify logic. No functional change intended.Akira Hatanaka2011-12-1910-132/+117
| | | | llvm-svn: 146896
* ARM NEON two-operand aliases for VPADD.Jim Grosbach2011-12-192-0/+20
| | | | | | rdar://10602276 llvm-svn: 146895
* Fix typo 'typdefs', from Nikola SmiljanicDouglas Gregor2011-12-191-1/+1
| | | | llvm-svn: 146894
* Remove definitions of double word shift plus 32 instructions. Assembler orAkira Hatanaka2011-12-193-27/+15
| | | | | | | direct-object emitter should emit the appropriate shift instruction depending on the shift amount. llvm-svn: 146893
* ARM VFP pre-UAL mnemonic aliases for fmul[sd].Jim Grosbach2011-12-192-1/+4
| | | | llvm-svn: 146892
* Added some strength to the checks that preventSean Callanan2011-12-194-3/+87
| | | | | | | | | | | "id" from being found by the parser as an externally-defined type. Before, "id" would sometimes make it through if it was defined in a namespace, but this sometimes caused confusion, for example when it conflicted with std::locale::id. llvm-svn: 146891
* Fix Python docstring for SBThread.GetStopDescription().Johnny Chen2011-12-192-1/+5
| | | | llvm-svn: 146890
* Remove unused predicate.Akira Hatanaka2011-12-191-3/+0
| | | | llvm-svn: 146889
* Remove the restriction on the first operand of the add node in SelectAddr.Akira Hatanaka2011-12-192-4/+2
| | | | | | | | | | | | | | | | | | This change reduces the number of instructions generated. For example, (load (add (sub $n0, $n1), (MipsLo got(s)))) results in the following sequence of instructions: 1. sub $n2, $n0, $n1 2. lw got(s)($n2) Previously, three instructions were needed. 1. sub $n2, $n0, $n1 2. addiu $n3, $n2, got(s) 3. lw 0($n3) llvm-svn: 146888
* ARM VFP pre-UAL mnemonic aliases for fcpy[sd] and fdiv[sd].Jim Grosbach2011-12-192-1/+5
| | | | llvm-svn: 146887
* Once we have fully deserialized a redeclaration chain for somethingDouglas Gregor2011-12-196-18/+61
| | | | | | | | | | | with a definition pointer (e.g., C++ and Objective-C classes), zip through the redeclaration chain to make sure that all of the declarations point to the definition data. As part of this, realized again why the first redeclaration of an entity in a file is important, and brought back that idea. llvm-svn: 146886
* ARM NEON implied destination aliases for VMAX/VMIN.Jim Grosbach2011-12-193-110/+304
| | | | llvm-svn: 146885
* ARM NEON relax parse time diagnostics for alignment specifiers.Jim Grosbach2011-12-194-17/+19
| | | | | | | There's more variation that we need to handle. Error checking will need to be on operand predicates. llvm-svn: 146884
* Re-implement (de-)serialization of redeclaration chains forDouglas Gregor2011-12-197-106/+123
| | | | | | | | | | | | | | | | redeclaration templates (RedeclarableTemplateDecl), similarly to the way (de-)serialization is implemented for Redeclarable<T>. In the process, found a simpler formulation for handling redeclaration chains and implemented that in both places. The new test establishes that we're building the redeclaration chains properly. However, the FIXME indicates where we're tickling a different bug that has to do with us not setting the DefinitionData pointer properly in redeclarations that we detected after the definition itself was deserialized. The (separable) fix for that bug is forthcoming. llvm-svn: 146883
* Tidy up.Jim Grosbach2011-12-191-7/+7
| | | | llvm-svn: 146882
* Fix http://llvm.org/bugs/show_bug.cgi?id=11616Howard Hinnant2011-12-193-61/+139
| | | | llvm-svn: 146881
* Remove a register class that can just as well be synthesized.Jakob Stoklund Olesen2011-12-192-9/+4
| | | | | | | Add the new TableGen register class synthesizer feature to the release notes. llvm-svn: 146875
* Handle sub-register operands in recomputeRegClass().Jakob Stoklund Olesen2011-12-191-4/+6
| | | | | | | | | | | Now that getMatchingSuperRegClass() returns accurate results, it can be used to compute constraints imposed by instructions using a sub-register of a virtual register. This means we can recompute the register class of any virtual register by combining the constraints from all its uses. llvm-svn: 146874
* Emit a getMatchingSuperRegClass() implementation for every target.Jakob Stoklund Olesen2011-12-198-231/+90
| | | | | | | | | Use information computed while inferring new register classes to emit accurate, table-driven implementations of getMatchingSuperRegClass(). Delete the old manual, error-prone implementations in the targets. llvm-svn: 146873
* Synthesize register classes for TRI::getMatchingSuperRegClass().Jakob Stoklund Olesen2011-12-192-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach TableGen to create the missing register classes needed for getMatchingSuperRegClass() to return maximal results. The function is still not auto-generated, so it still returns inexact results. This produces these new register classes: ARM: QQPR_with_dsub_0_in_DPR_8 QQQQPR_with_dsub_0_in_DPR_8 X86: GR64_with_sub_32bit_in_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP GR64_with_sub_16bit_in_GR16_NOREX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX GR64_with_sub_32bit_in_GR32_TC GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC GR64_with_sub_32bit_in_GR32_AD GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX The other targets in the tree are not weird enough to be affected. llvm-svn: 146872
* Add a triple to the test.Rafael Espindola2011-12-191-1/+1
| | | | llvm-svn: 146871
* The submodule offset map can introduce "empty" remapping entries forDouglas Gregor2011-12-194-11/+29
| | | | | | | | | | imported modules that don't introduce any new entities of a particular kind. Allow these entries to be replaced with entries for another loaded module. In the included test case, selectors exhibit this behavior. llvm-svn: 146870
* Optimize serialized representation of redeclarable declarations forDouglas Gregor2011-12-197-40/+45
| | | | | | | | | | | which there are no redeclarations. This reduced by size of the PCH file for Cocoa.h by ~650k: ~536k of that was in the new LOCAL_REDECLARATIONS table, which went from a ridiculous 540k down to an acceptable 3.5k, while the rest was due to the more compact abbreviated representation of redeclarable declaration kinds (which no longer need to store the 'first' declaration ID). llvm-svn: 146869
* Make sure this test works in C++, tooDouglas Gregor2011-12-191-0/+1
| | | | llvm-svn: 146868
* Extend the fix for PR9614 to handle inline asm in the outer decl andRafael Espindola2011-12-193-17/+41
| | | | | | | the inner decl being a builtin. This is needed to support the glibc headers in fedora 16 (2.14). llvm-svn: 146867
* Combine common (de-)serialization logic for typedefs and type aliasesDouglas Gregor2011-12-192-10/+15
| | | | | | into operations on TypedefNameDecl. No functionality change. llvm-svn: 146866
* Some fixes to <atomic> operations to explicitly use atomic types and operations.David Chisnall2011-12-191-6/+6
| | | | | | | The integral types now work with clang trunk (if you remove the guard), although we're still missing an intrinsic for initialising atomics (needed for C1x too). Howard: Please review. llvm-svn: 146865
* Allow for benchmarking more than 4GB of memoryManuel Klimek2011-12-191-3/+3
| | | | llvm-svn: 146864
* Adds a flag to allow specifying the memory limitations of the JSON benchmark.Manuel Klimek2011-12-191-7/+14
| | | | llvm-svn: 146863
* Add AVX2 intrinsics for and, andn, or, and xor.Craig Topper2011-12-192-0/+44
| | | | llvm-svn: 146862
* SourceManager: use getBufferSize()Dylan Noblesmith2011-12-191-4/+5
| | | | | | | Forming an out of bounds pointer to check if it's out of bounds was undefined behavior. llvm-svn: 146861
* fix a broken linkChris Lattner2011-12-191-1/+1
| | | | llvm-svn: 146859
* More AVX2 intrinsic support including saturating add/sub and palignr.Craig Topper2011-12-194-0/+151
| | | | llvm-svn: 146857
* constexpr handling improvements. Produce detailed diagnostics when a 'constexpr'Richard Smith2011-12-1920-217/+314
| | | | | | | | | | | | | | | | | | | | | variable is initialized by a non-constant expression, and pass in the variable being declared so that earlier-initialized fields' values can be used. Rearrange VarDecl init evaluation to make this possible, and in so doing fix a long-standing issue in our C++ constant expression handling, where we would mishandle cases like: extern const int a; const int n = a; const int a = 5; int arr[n]; Here, n is not initialized by a constant expression, so can't be used in an ICE, even though the initialization expression would be an ICE if it appeared later in the TU. This requires computing whether the initializer is an ICE eagerly, and saving that information in PCH files. llvm-svn: 146856
* Begin adding AVX2 intrinsics. Necessitated increasing the number of bits ↵Craig Topper2011-12-197-5/+226
| | | | | | used to store builtinID when serializing identifier table. llvm-svn: 146855
* - Use getExitingBlock instead of getExitingBlocks.Jakub Staszak2011-12-181-13/+11
| | | | | | - Remove trailing spaces. llvm-svn: 146854
* Allow unique_ptr<T const []> to be constructed and assigned from a ↵Howard Hinnant2011-12-181-19/+77
| | | | | | unique_ptr<T[]> llvm-svn: 146853
* Another variadics tweak.Benjamin Kramer2011-12-181-4/+3
| | | | llvm-svn: 146852
* Allow inlining of functions with returns_twice calls, if they have theJoerg Sonnenberger2011-12-186-22/+70
| | | | | | attribute themselve. llvm-svn: 146851
* Use the fancy new VariadicFunction template instead of a plain variadic ↵Benjamin Kramer2011-12-181-34/+33
| | | | | | | | function. Some compilers were complaining about passing StringRef to it. llvm-svn: 146850
* capitalize project name, reference bugzillaDylan Noblesmith2011-12-183-6/+6
| | | | | | | | | | | And fix the double-[]. It was including the [] as part of the project name somehow, resulting in PACKAGE_TARNAME "-llvm-" and a strange docdir default: ./configure --help | grep docdir --docdir=DIR documentation root [DATAROOTDIR/doc/-llvm-] llvm-svn: 146849
* test/Analysis: fix error messageDylan Noblesmith2011-12-181-1/+1
| | | | llvm-svn: 146848
* Silence gcc warnings.Benjamin Kramer2011-12-182-2/+3
| | | | llvm-svn: 146847
* Hexagon: Remove unused variables.Benjamin Kramer2011-12-182-13/+0
| | | | llvm-svn: 146846
* examples: flesh out PFN readmeDylan Noblesmith2011-12-181-0/+4
| | | | | | Show how to actually use the arguments it has. llvm-svn: 146845
* Initial commit. Code by Nick Kledzik. Cleanups and build system by me.Michael J. Spencer2011-12-1832-0/+2537
| | | | llvm-svn: 146844
* PR11604: don't allow floating-literal-to-integer casts in ICEs if the ↵Richard Smith2011-12-182-3/+23
| | | | | | | | | | (truncated) floating literal value does not fit into the destination type. Such casts have undefined behavior at translation time; treating them as non-ICE matches the behavior of modern gcc versions. llvm-svn: 146842
* Completely re-implement (de-)serialization of declarationDouglas Gregor2011-12-1717-90/+462
| | | | | | | | | | | | | | | | | | | | | | | | | | chains. The previous implementation relied heavily on the declaration chain being stored as a (circular) linked list on disk, as it is in memory. However, when deserializing from multiple modules, the different chains could get mixed up, leading to broken declaration chains. The new solution keeps track of the first and last declarations in the chain for each module file. When we load a declaration, we search all of the module files for redeclarations of that declaration, then splice together all of the lists into a coherent whole (along with any redeclarations that were actually parsed). As a drive-by fix, (de-)serialize the redeclaration chains of TypedefNameDecls, which had somehow gotten missed previously. Add a test of this serialization. This new scheme creates a redeclaration table that is fairly large in the PCH file (on the order of 400k for Cocoa.h's 12MB PCH file). The table is mmap'd in and searched via a binary search, but it's still quite large. A future tweak will eliminate entries for declarations that have no redeclarations anywhere, and should drastically reduce the size of this table. llvm-svn: 146841
* Split the Windows toolchain definition into its own file. This isChandler Carruth2011-12-176-363/+413
| | | | | | | | | | | | | | | especially nice as the Windows toolchain needs the windows header files, and has lots of platform specific hooks in it. To facilitate the split, hoist a bunch of file-level static helpers into class-level static helpers. Spiff up their doxygen comments while there as they're now more likely to be looked up via docs. Hopefully, this will be followed by further breaking apart of the toolchain definitions. Most of the large and complex ones should likely live on their own. I'm looking at you Darwin. ;] llvm-svn: 146840
OpenPOWER on IntegriCloud