summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use a tab instead of space after .type, for consistency.Dan Gohman2010-02-041-1/+1
| | | | llvm-svn: 95272
* Rewrite FP constant handling in DEBUG_VALUE yetDale Johannesen2010-02-041-5/+17
| | | | | | | again, so it more or less handles long double. Restore \n removed in latest MC frenzy. llvm-svn: 95271
* Fix (and test) function-local metadata that occurs before the instruction ↵Victor Hernandez2010-02-042-4/+10
| | | | | | that it refers to; fix is to not enumerate operands of function-local metadata until after all instructions have been enumerated llvm-svn: 95269
* static analyzer: handle casts of a function to a function pointer withTed Kremenek2010-02-045-1/+108
| | | | | | | | a different return type. While we don't emit any errors (yet), at least we avoid cases where we might crash because of an assertion failure later on (when the return type differs from what is expected). llvm-svn: 95268
* Fix rewriting of 'const' __block variables inFariborz Jahanian2010-02-042-2/+39
| | | | | | the rewriter. (Fixes radar 7607781). llvm-svn: 95267
* If we're dealing with a zero-length array, don't lower to anyEric Christopher2010-02-032-4/+20
| | | | | | particular size, we just don't know what the length is yet. llvm-svn: 95266
* This test passes now on ppc darwin; if it doesn't passDale Johannesen2010-02-031-1/+1
| | | | | | on some other ppc say something on the list. llvm-svn: 95265
* This test passes now on ppc darwin, so reenable it.Dale Johannesen2010-02-031-3/+0
| | | | llvm-svn: 95264
* Debugging is now reenabled on PPC darwin, so reenableDale Johannesen2010-02-032-6/+1
| | | | | | these tests (they pass). llvm-svn: 95263
* Don't try to fold DeclRefExprs that point to ParmVarDecls. This had the ↵Anders Carlsson2010-02-032-0/+16
| | | | | | | | | | | | | | side-effect of always folding the expression to the default argument of the parameter. For example: void f(int a = 10) { return a; } would always return 10, regardless of the passed in argument. This fixes another 600 test failures. We're now down to only 137 failures! llvm-svn: 95262
* enhance new encoder to support prefixes + RawFrm Chris Lattner2010-02-033-7/+133
| | | | | | | | instructions with no operands. It can now handle define void @test2() nounwind { ret void } llvm-svn: 95261
* set up some infrastructure, some minor cleanups.Chris Lattner2010-02-031-5/+39
| | | | llvm-svn: 95260
* Speculatively disable x86 automatic tail call optimization while we track ↵Evan Cheng2010-02-032-0/+4
| | | | | | down a self-hosting issue. llvm-svn: 95259
* Make test less fragileEvan Cheng2010-02-031-1/+1
| | | | llvm-svn: 95258
* Fix more rewriting of protocol-quialified 'id' type.Fariborz Jahanian2010-02-032-0/+22
| | | | | | (Fixes radar 7607413). llvm-svn: 95257
* stub out a new X86 encoder, which can be tried withChris Lattner2010-02-035-1/+56
| | | | | | -enable-new-x86-encoder until its stable. llvm-svn: 95256
* In some contexts, type declarations cannot occur. Pass this information down ↵Sebastian Redl2010-02-035-11/+42
| | | | | | to ParseClassSpecifier, to make its decision easier. Fixes PR6200. llvm-svn: 95255
* rename createX86MCCodeEmitter to more accurately reflect what it creates.Chris Lattner2010-02-033-5/+7
| | | | llvm-svn: 95254
* don't inform comment handlers about comments in #if 0 blocks,Chris Lattner2010-02-031-7/+9
| | | | | | | | | doing so invalidates the file guard optimization and is not in the spirit of "#if 0" because it is supposed to completely skip everything, even if it isn't lexically valid. Patch by Abramo Bagnara! llvm-svn: 95253
* Added support for X86 instruction prefixes so llvm-mc can assemble them. TheKevin Enderby2010-02-033-6/+120
| | | | | | | | | | Lock prefix, Repeat string operation prefixes and the Segment override prefixes. Also added versions of the move string and store string instructions without the repeat prefixes to X86InstrInfo.td. And finally marked the rep versions of move/store string records in X86InstrInfo.td as isCodeGenOnly = 1 so tblgen is happy building the disassembler files. llvm-svn: 95252
* Define two types to be "compatible" in C++ if they are the same, andDouglas Gregor2010-02-031-9/+6
| | | | | | | remove some age-old FIXMEs and C++ workarounds within the type-compatibility logic. llvm-svn: 95249
* Declarators can have grouping parens. This fixes rdar://7608537.Chris Lattner2010-02-032-0/+4
| | | | llvm-svn: 95246
* Patch to allow reinterpret_cast on objective-c pointers.Fariborz Jahanian2010-02-032-7/+51
| | | | | | (partial fix for radar 7591784). llvm-svn: 95245
* Revert "Numerous changes to selector handling:", this breaks a whole bunch ofDaniel Dunbar2010-02-038-84/+29
| | | | | | working code, for no apparent reason. llvm-svn: 95244
* Emit appropriate expression to find virtual base offset.Devang Patel2010-02-031-1/+20
| | | | llvm-svn: 95242
* Provide interface to identifiy artificial methods.Devang Patel2010-02-033-6/+14
| | | | llvm-svn: 95240
* Top-level const changes do not make a qualification conversion. Fixes PR6089.Sebastian Redl2010-02-032-1/+19
| | | | llvm-svn: 95239
* When determining whether a function without a prototype is compatibleDouglas Gregor2010-02-032-0/+10
| | | | | | | with a function with a prototype, treat parameters of enumeration type based on the enumeration type's promotion type. llvm-svn: 95238
* r94686 changed all ModuleProvider parameters to Modules, which made theJeffrey Yasskin2010-02-032-9/+0
| | | | | | | | 1-argument ExecutionEngine::create(Module*) ambiguous with the signature that used to be ExecutionEngine::create(ModuleProvider*, defaulted_params). Fixed by removing the 1-argument create(). Fixes PR6221. llvm-svn: 95236
* Handle reference binding in aggregate initializers. Fixes another 47 tests.Anders Carlsson2010-02-032-5/+13
| | | | llvm-svn: 95235
* Add a band-aid fix for clang self-hosting. A better fix will follow shortly.Anders Carlsson2010-02-031-0/+3
| | | | llvm-svn: 95232
* Make docs less specific about their versions, at Chris's suggestion.Jeffrey Yasskin2010-02-031-4/+5
| | | | llvm-svn: 95231
* Add llvm_supports_darwin_and_target to DejaGNU as well, I'd almost forgotten itDaniel Dunbar2010-02-031-0/+10
| | | | | | ever existed. :) llvm-svn: 95230
* Mention the version in the documentation index and link to the 2.6 docs, whichJeffrey Yasskin2010-02-031-2/+5
| | | | | | is what most readers will actually be aiming for. llvm-svn: 95229
* Fix for PR6220: compute the correct type for multicharacter literals.Eli Friedman2010-02-032-0/+11
| | | | llvm-svn: 95228
* llvm-mc: Add --show-inst option, for showing the MCInst inline with the assemblyDaniel Dunbar2010-02-033-21/+43
| | | | | | output. llvm-svn: 95227
* More cleanup.Anders Carlsson2010-02-031-10/+14
| | | | llvm-svn: 95226
* Add "Author Date Id Revision" svn:keyword properties to these files, asDan Gohman2010-02-0315-15/+15
| | | | | | | is done with the other html files in doc, to hopefully keep strings like "Last modified" current. llvm-svn: 95225
* Adjust the heuristics used to decide when SROA is likely to be profitable.Bob Wilson2010-02-031-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SRThreshold value makes perfect sense for checking if an entire aggregate should be promoted to a scalar integer, but it is not so good for splitting an aggregate into its separate elements. A struct may contain a large embedded array along with some scalar fields that would benefit from being split apart by SROA. Even if the total aggregate size is large, it may still be good to perform SROA. Thus, the most important piece of this patch is simply moving the aggregate size comparison vs. SRThreshold so that it guards only the aggregate promotion. We have also been checking the number of elements to decide if an aggregate should be split up. The limit of "SRThreshold/4" seemed rather arbitrary, and I don't think it's very useful to derive this limit from SRThreshold anyway. I've collected some data showing that the current default limit of 32 (since SRThreshold defaults to 128) is a reasonable cutoff for struct types. One thing suggested by the data is that distinguishing between structs and arrays might be useful. There are (obviously) a lot more large arrays than large structs (as measured by the number of elements and not the total size -- a large array inside a struct still counts as a single element given the way we do SROA right now). Out of 8377 arrays where we successfully performed SROA while compiling a large set of benchmarks, only 16 of them had more than 8 elements. And, for those 16 arrays, it's not at all clear that SROA was actually beneficial. So, to offset the compile time cost of investigating more large structs for SROA, the patch lowers the limit on array elements to 8. This fixes Apple Radar 7563690. llvm-svn: 95224
* Revert the new reference binding code; I came up with a way simpler solution ↵Anders Carlsson2010-02-037-58/+8
| | | | | | for the reference binding bug that is preventing self-hosting. llvm-svn: 95223
* First pass at adding GC support for GNU runtime. GC ivar maps not yet ↵David Chisnall2010-02-031-6/+97
| | | | | | | | constructed, GC flag not set. Please don't try using this yet - the runtime support is still very immature and your code will almost certainly crash if you do. llvm-svn: 95222
* Repository access test commitGarrison Venn2010-02-031-1/+1
| | | | llvm-svn: 95221
* Teach the allocation function overload handling to deal with templates, andChandler Carruth2010-02-033-12/+46
| | | | | | | | | | | prevent a crash on templates when looking for an existing declaration of the predefined global operators. This fixes PR5918. Added an easy test case for the overload handling, but testing the crash is a bit trickier. Created a new test that can use multiple runs with a define to trigger which test case is used so we can test this type of issue. llvm-svn: 95220
* Fix PR6149 by looking at the qualifiers on the referred to type for non-typeChandler Carruth2010-02-032-2/+73
| | | | | | | reference template arguments. Adds test cases for the cv-quals of reference arguments. llvm-svn: 95217
* When a function or variable somehow depends on a type or declarationDouglas Gregor2010-02-0311-79/+402
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that is in an anonymous namespace, give that function or variable internal linkage. This change models an oddity of the C++ standard, where names declared in an anonymous namespace have external linkage but, because anonymous namespace are really "uniquely-named" namespaces, the names cannot be referenced from other translation units. That means that they have external linkage for semantic analysis, but the only sensible implementation for code generation is to give them internal linkage. We now model this notion via the UniqueExternalLinkage linkage type. There are several changes here: - Extended NamedDecl::getLinkage() to produce UniqueExternalLinkage when the declaration is in an anonymous namespace. - Added Type::getLinkage() to determine the linkage of a type, which is defined as the minimum linkage of the types (when we're dealing with a compound type that is not a struct/class/union). - Extended NamedDecl::getLinkage() to consider the linkage of the template arguments and template parameters of function template specializations and class template specializations. - Taught code generation to rely on NamedDecl::getLinkage() when determining the linkage of variables and functions, also considering the linkage of the types of those variables and functions (C++ only). Map UniqueExternalLinkage to internal linkage, taking out the explicit checks for isInAnonymousNamespace(). This fixes much of PR5792, which, as discovered by Anders Carlsson, is actually the reason behind the pass-manager assertion that causes the majority of clang-on-clang regression test failures. With this fix, Clang-built-Clang+LLVM passes 88% of its regression tests (up from 67%). The specific numbers are: LLVM: Expected Passes : 4006 Expected Failures : 32 Unsupported Tests : 40 Unexpected Failures: 736 Clang: Expected Passes : 1903 Expected Failures : 14 Unexpected Failures: 75 Overall: Expected Passes : 5909 Expected Failures : 46 Unsupported Tests : 40 Unexpected Failures: 811 Still to do: - Improve testing - Check whether we should allow the presence of types with InternalLinkage (in addition to UniqueExternalLinkage) given variables/functions internal linkage in C++, as mentioned in PR5792. - Determine how expensive the getLinkage() calls are in practice; consider caching the result in NamedDecl. - Assess the feasibility of Chris's idea in comment #1 of PR5792. llvm-svn: 95216
* Add FlatStore.cpp (from r95214) to CMake build. Don't forget about it! =DChandler Carruth2010-02-031-0/+1
| | | | llvm-svn: 95215
* Add skeleton of flat store manager.Zhongxing Xu2010-02-033-1/+156
| | | | llvm-svn: 95214
* Remove redundant declaration.Zhongxing Xu2010-02-031-2/+0
| | | | llvm-svn: 95213
* Add constructors.Zhongxing Xu2010-02-031-0/+5
| | | | llvm-svn: 95212
* Look through CXXExprWithTemporaries when digging out the originalDouglas Gregor2010-02-031-0/+3
| | | | | | initializer. Grrr.... llvm-svn: 95211
OpenPOWER on IntegriCloud