summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix diagnostic pragmas.Argyrios Kyrtzidis2010-12-1523-117/+454
| | | | | | | | | | | | Diagnostic pragmas are broken because we don't keep track of the diagnostic state changes and we only check the current/latest state. Problems manifest if a diagnostic is emitted for a source line that has different diagnostic state than the current state; this can affect a lot of places, like C++ inline methods, template instantiations, the lexer, etc. Fix the issue by having the Diagnostic object keep track of the source location of the pragmas so that it is able to know what is the diagnostic state at any given source location. Fixes rdar://8365684. llvm-svn: 121873
* Fix build.Jakob Stoklund Olesen2010-12-151-1/+1
| | | | llvm-svn: 121872
* Detect and enumerate bypass loops.Jakob Stoklund Olesen2010-12-152-0/+39
| | | | | | | | Bypass loops have the current live range live through, but contain no uses or defs. Splitting around a bypass loop can free registers for other uses inside the loop by spilling the split range. llvm-svn: 121871
* Separate SplitAnalysis::getSplitLoops().Jakob Stoklund Olesen2010-12-152-7/+14
| | | | | | | This method returns the set of loops with uses that are candidates for splitting. llvm-svn: 121870
* Move the work-in-progress implementation of variadic templates to its own ↵Douglas Gregor2010-12-153-29/+47
| | | | | | file in Sema. No functionality change. llvm-svn: 121869
* Add a Neon intrinsic test generator.Bob Wilson2010-12-153-1/+115
| | | | | | This is still a WIP. It's already good enough to expose a few bugs, though. llvm-svn: 121868
* Fix Neon intrinsic immediate range checking for some double-register operands.Bob Wilson2010-12-151-3/+7
| | | | | | | | | | | Some quad-register intrinsics with lane operands only take a double-register operand for the vector containing the lane. The valid range of lane numbers is then half as big as you would expect from the quad-register type. Note: This currently has no effect because those intrinsics are now handled entirely in the header file using __builtin_shufflevector, which does its own range checking, but I want to use this for generating tests. llvm-svn: 121867
* Reorganize LookupMemberExpr for clarity and to make the obvious fast pathsJohn McCall2010-12-151-267/+321
| | | | | | come first. llvm-svn: 121866
* __attribute__((nonnull)) can apply to reference-to-pointerDouglas Gregor2010-12-152-2/+13
| | | | | | parameters. Fixes <rdar://problem/8769025>. llvm-svn: 121864
* Sema: have BuildExpressionFromIntegralTemplateArgument produce well-formed ↵Peter Collingbourne2010-12-152-1/+16
| | | | | | | | | | | | | IntegerLiterals BuildExpressionFromIntegralTemplateArgument can produce malformed IntegerLiterals with an EnumType if the template parameter type is an EnumType. This breaks the AST printer which expects all IntegerLiterals to have a plain integer type. Instead, give the IntegerLiteral the enum's promotion type and wrap in an implicit cast to the EnumType. llvm-svn: 121862
* Move Sub simplifications and additional Add simplifications out ofDuncan Sands2010-12-154-40/+78
| | | | | | instcombine and into InstructionSimplify. llvm-svn: 121861
* If we detect that the instruction we are simplifying is unreachable, arrange forDuncan Sands2010-12-151-3/+3
| | | | | | | it to be replaced by undef rather than not replaced at all, the idea being that this may reduce the amount of work done by whoever called InstructionSimplify. llvm-svn: 121860
* Teach jump threading to "look through" a select when the branch direction of ↵Frits van Bommel2010-12-152-0/+157
| | | | | | | | a terminator depends on it. When it sees a promising select it now tries to figure out whether the condition of the select is known in any of the predecessors and if so it maps the operands appropriately. llvm-svn: 121859
* Add fixups for Thumb LDR/STR instructions.Bill Wendling2010-12-153-3/+20
| | | | llvm-svn: 121858
* Relax alignment fragments.Rafael Espindola2010-12-154-48/+46
| | | | | | | | | | | With this we don't need the EffectiveSize field anymore. Without that field LayoutFragment only updates offsets and we don't need to invalidate the current fragment when it is relaxed (only the ones following it). This is also a very small improvement in the accuracy of the layout info as we now use the after relaxation size immediately. llvm-svn: 121857
* Patch by David Meyer to avoid a O(N^2) behaviour when relaxing fragments.Rafael Espindola2010-12-152-7/+10
| | | | | | | Since we now don't update addresses so early, we might relax a bit more than we need to. This is simillar to the issue in PR8467. llvm-svn: 121856
* Silence GCC warning about control reaching the end of the function and ↵Chandler Carruth2010-12-151-0/+2
| | | | | | explicitly mark that all cases are handled. llvm-svn: 121855
* add another overflow idiomChris Lattner2010-12-151-0/+8
| | | | llvm-svn: 121854
* add a note about overflow idiom recognition.Chris Lattner2010-12-151-1/+19
| | | | llvm-svn: 121853
* Fix gcc warning: 'clang::ASTStmtReader' is already a friend of ↵Nico Weber2010-12-151-2/+0
| | | | | | 'clang::OverloadExpr' llvm-svn: 121852
* Generalize an assert.Rafael Espindola2010-12-152-1/+8
| | | | llvm-svn: 121851
* add a shift/imul missed optimizationChris Lattner2010-12-151-0/+45
| | | | llvm-svn: 121850
* add a note about a SPEC hack that gcc mainline does.Chris Lattner2010-12-151-0/+23
| | | | llvm-svn: 121849
* take care of some todos, transforming [us]mul_lohi into Chris Lattner2010-12-152-2/+47
| | | | | | a wider mul if the wider mul is legal. llvm-svn: 121848
* merge two testsChris Lattner2010-12-152-7/+10
| | | | llvm-svn: 121847
* when transforming a MULHS into a wider MUL, there is no need to SRA theChris Lattner2010-12-151-1/+1
| | | | | | result, the top bits are truncated off anyway, just use SRL. llvm-svn: 121846
* Fixed the "expression" command object to use the ↵Greg Clayton2010-12-1512-365/+322
| | | | | | | | | | | | | StackFrame::GetValueForExpressionPath() function and also hooked up better error reporting for when things fail. Fixed issues with trying to display children of pointers when none are supposed to be shown (no children for function pointers, and more like this). This was causing child value objects to be made that were correctly firing an assertion. llvm-svn: 121841
* make qsort predicate more conformant by returning 0 for equal values.Chris Lattner2010-12-151-1/+5
| | | | llvm-svn: 121838
* various cleanups to tblgen, patch by Garrison Venn!Chris Lattner2010-12-157-28/+19
| | | | llvm-svn: 121837
* Sundry missing lvalue-to-rvalue conversions. Also leave a TODO for the vitalJohn McCall2010-12-153-7/+19
| | | | | | | future task of performing contextual conversion to size_t in a VLA size expression. :) llvm-svn: 121836
* Move the demangle-failed indication out a bit so other failing casesJason Molenda2010-12-151-6/+6
| | | | | | | also get marked as having failed (so we don't try to demangle the same symbol multiple times). llvm-svn: 121835
* Fix a crash on some platforms where a dSYM for a system library lists a ↵Jason Molenda2010-12-151-1/+2
| | | | | | | | | | DW_AT_mips_linkage_name for a non-mangled function - we pass the non mangled string down through abi::__cxa_demangle and it crashes. Usually passing non mangled strings to abi::__cxa_demangle works out fine but not always, apparently. llvm-svn: 121834
* Set the "implicitly inline" bit on a method as soon as we see a definitionJohn McCall2010-12-154-24/+60
| | | | | | | | within the class. Teach IR gen to look for function definitions in record lexical contexts when deciding whether to emit a function whose address was taken. Fixes PR8789. llvm-svn: 121833
* Add mention that we support FreeBSD/amd64.Bill Wendling2010-12-151-0/+5
| | | | llvm-svn: 121832
* Variadic templates: extend the Expr class with a bit that specifiesDouglas Gregor2010-12-1517-308/+572
| | | | | | | | | | | | | | | | | | whether the expression contains an unexpanded parameter pack, in the same vein as the changes to the Type hierarchy. Compute this bit within all of the Expr subclasses. This change required a bunch of reshuffling of dependency calculations, mainly to consolidate them inside the constructors and to fuse multiple loops that iterate over arguments to determine type dependence, value dependence, and (now) containment of unexpanded parameter packs. Again, testing is painfully sparse, because all of the diagnostics will change and it is more important to test the to-be-written visitor that collects unexpanded parameter packs. llvm-svn: 121831
* Add some more MC tests for ARM arithmetic instructions that update or don'tKevin Enderby2010-12-151-8/+59
| | | | | | | update the condition codes. These come from my test generator and are just the ones that MC currently assembles correctly. llvm-svn: 121830
* Copy-pastos.Mikhail Glushenkov2010-12-151-17/+15
| | | | llvm-svn: 121829
* Remove ConvertToMAttrImpl, it became too '-march'-specific.Mikhail Glushenkov2010-12-151-62/+70
| | | | llvm-svn: 121828
* llvmc: Support -march arguments that should be forwarded to llc as -mcpu.Mikhail Glushenkov2010-12-151-10/+42
| | | | llvm-svn: 121827
* llvmc: Better -mfpu/-mcpu support for ARM & PPC.Mikhail Glushenkov2010-12-152-14/+89
| | | | llvm-svn: 121826
* llvmc: more complete -march table for ARM.Mikhail Glushenkov2010-12-151-2/+4
| | | | llvm-svn: 121825
* llvmc: Support -mabi/-mfloat-abi.Mikhail Glushenkov2010-12-151-0/+10
| | | | llvm-svn: 121824
* llvmc: Forward -march/-mcpu/-mtune to as & ld.Mikhail Glushenkov2010-12-151-0/+6
| | | | llvm-svn: 121823
* llvmc: make switch options ZeroOrMore by default.Mikhail Glushenkov2010-12-151-1/+8
| | | | llvm-svn: 121822
* Function types are compatible (in the C sense) if their regparms are identical.John McCall2010-12-151-16/+20
| | | | llvm-svn: 121821
* Reapply r121808 now that the missing patterns have been supplied.Bill Wendling2010-12-151-16/+21
| | | | llvm-svn: 121820
* Add some missing patterns now that tLDRB and tLDRH are split into reg andBill Wendling2010-12-151-2/+12
| | | | | | immediate versions. llvm-svn: 121819
* Modify the test case to run under ['gcc', 'llvm-gcc', 'clang'] x ['x86_64', ↵Johnny Chen2010-12-151-5/+5
| | | | | | | | 'i386'] combinations. llvm-svn: 121818
* Fix PR8790, another instance where unreachable code can cause instruction ↵Owen Anderson2010-12-152-1/+23
| | | | | | | | simplification to fail, this case involve a select that simplifies to itself. llvm-svn: 121817
* Cleanup trailing whitespace.Owen Anderson2010-12-151-27/+27
| | | | llvm-svn: 121816
OpenPOWER on IntegriCloud