summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge IsFixupFullyResolved and IsSymbolRefDifferenceFullyResolved. We nowRafael Espindola2010-12-246-223/+108
| | | | | | have a single point where targets test if a relocation is needed. llvm-svn: 122549
* MemCpyOpt: Turn memcpys from a constant into a memset if possible.Benjamin Kramer2010-12-242-3/+64
| | | | | | | | | | | | | This allows us to compile "int cst[] = {-1, -1, -1};" into movl $-1, 16(%rsp) movq $-1, 8(%rsp) instead of movl _cst+8(%rip), %eax movl %eax, 16(%rsp) movq _cst(%rip), %rax movq %rax, 8(%rsp) llvm-svn: 122548
* MC/Mach-O/ARM: Start handling some Thumb branches.Daniel Dunbar2010-12-242-0/+153
| | | | llvm-svn: 122547
* Add basic support for pointer arithmetic inTed Kremenek2010-12-245-20/+46
| | | | | | | | SimpleSValBuilder. This clears up some false positives emitted by ArrayBoundCheckerV2 due to the lack of support for pointer arithmetic. llvm-svn: 122546
* Minor cleanup related to my latest scheduler changes.Andrew Trick2010-12-242-4/+6
| | | | llvm-svn: 122545
* Fix a few cases where the scheduler is not checking for phys reg copies. The ↵Andrew Trick2010-12-242-4/+11
| | | | | | scheduling node may have a NULL DAG node, yuck. llvm-svn: 122544
* Remove the EntoSA directories.Argyrios Kyrtzidis2010-12-24122-39458/+0
| | | | llvm-svn: 122543
* Trailing whitespace.Jim Grosbach2010-12-241-96/+96
| | | | llvm-svn: 122542
* Various bits of framework needed for precise machine-level selectionAndrew Trick2010-12-2431-185/+715
| | | | | | | | | | | | | | | | | | | | | | | | | | DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. llvm-svn: 122541
* don't use #pragma mark, it isn't portable.Chris Lattner2010-12-241-7/+7
| | | | llvm-svn: 122540
* whitespaceAndrew Trick2010-12-2419-422/+422
| | | | llvm-svn: 122539
* ifndef _MSC_VER out #pragma mark on MSVC. It still tries to parse the text evenMichael J. Spencer2010-12-241-0/+4
| | | | | | though it doesn't know what it is, and complains about invalid tokens ;/. llvm-svn: 122538
* Simplify a check for implicit defs and remove a FIXME.Cameron Zwarich2010-12-241-8/+6
| | | | llvm-svn: 122537
* Handle locations coming from macro instantiations properly in ↵Argyrios Kyrtzidis2010-12-242-0/+17
| | | | | | | | SourceManager::isBeforeInTranslationUnit(). Fixes rdar://8790245 and http://llvm.org/PR8821. llvm-svn: 122536
* Refactor how we collect attributes during parsing, and add slots for attributesJohn McCall2010-12-2418-500/+524
| | | | | | | on array and function declarators. This is pretty far from complete, and I'll revisit it later if someone doesn't beat me to it. llvm-svn: 122535
* Fix a thinko in a helper routine for template argument deduction thatDouglas Gregor2010-12-242-5/+35
| | | | | | | | caused an assertion when dealing with non-type template parameter packs. Add some tests for deduction and instantiation of non-type template parameter packs. llvm-svn: 122534
* Non-type template parameter packs cannot have default arguments.Douglas Gregor2010-12-242-0/+18
| | | | llvm-svn: 122533
* When instantiating a non-type template parameter pack, be sure toDouglas Gregor2010-12-245-10/+44
| | | | | | | | extract the appropriate argument from the argument pack (based on the current substitution index, of course). Simple instantiation of pack expansions involving non-type template parameter packs now works. llvm-svn: 122532
* In llvm-mc parse a Hash token as a full line comment. Allows handling ofKevin Enderby2010-12-242-2/+15
| | | | | | | preprocessed .s files and matches darwin gas. rdar://8798690 Also fix a comment on the next line of AsmParser.cpp after this new code. llvm-svn: 122531
* Use a StringSwitch<> instead of a manually constructed string matcher.Jim Grosbach2010-12-241-10/+7
| | | | llvm-svn: 122530
* When determining if we can fold (x >> C1) << C2, the bits that we need to ↵Owen Anderson2010-12-232-1/+21
| | | | | | | | verify are zero are not the low bits of x, but the bits that WILL be the low bits after the operation completes. llvm-svn: 122529
* Code clean up. No functionality change.Evan Cheng2010-12-231-49/+48
| | | | llvm-svn: 122528
* Add an AST representation for non-type template parameterDouglas Gregor2010-12-2318-30/+93
| | | | | | | | | | | | | | packs, e.g., template<typename T, unsigned ...Dims> struct multi_array; along with semantic analysis support for finding unexpanded non-type template parameter packs in types, expressions, and so on. Template instantiation involving non-type template parameter packs probably doesn't work yet. That'll come soon. llvm-svn: 122527
* Uncomment the two failed 'expression' commands regarding fully qualified ↵Johnny Chen2010-12-231-9/+14
| | | | | | | | namespace variables. And decorate the test cases as @expectedFailure. llvm-svn: 122525
* Remove dead patterns.Jim Grosbach2010-12-231-26/+0
| | | | llvm-svn: 122524
* Recognize a few more documented register name aliases for ARM in the asm lexer.Jim Grosbach2010-12-231-0/+18
| | | | llvm-svn: 122523
* Improve the diagnostic and recovery for missing colons after 'case'Douglas Gregor2010-12-232-13/+25
| | | | | | | | | | | | | | | and 'default' statements, including a Fix-It to add the colon: test/Parser/switch-recovery.cpp:13:12: error: expected ':' after 'case' case 17 // expected-error{{expected ':' after 'case'}} ^ : test/Parser/switch-recovery.cpp:16:12: error: expected ':' after 'default' default // expected-error{{expected ':' after 'default'}} ^ : llvm-svn: 122522
* Radar 8803471: Fix expansion of ARM BCCi64 pseudo instructions.Bob Wilson2010-12-232-0/+4
| | | | | | | | If the basic block containing the BCCi64 (or BCCZi64) instruction ends with an unconditional branch, that branch needs to be deleted before appending the expansion of the BCCi64 to the end of the block. llvm-svn: 122521
* Implement parsing of function parameter packs and non-type templateDouglas Gregor2010-12-2311-22/+308
| | | | | | | | | | | | parameter packs (C++0x [dcl.fct]p13), including disambiguation between unnamed function parameter packs and varargs (C++0x [dcl.fct]p14) for cases like void f(T...) where T may or may not contain unexpanded parameter packs. llvm-svn: 122520
* Add -fobjc-default-synthesized-properties flagTed Kremenek2010-12-2318-10/+48
| | | | | | | | | | | | to allow us to explicitly control whether or not Objective-C properties are default synthesized. Currently this feature only works when using the -fobjc-non-fragile-abi2 flag (so there is no functionality change), but we can now turn off this feature without turning off all the features coupled with -fobjc-non-fragile-abi2. llvm-svn: 122519
* Do not re-test for the existence of pthread.h.Oscar Fuentes2010-12-231-3/+0
| | | | | | It was causing problems on the MinGW build. See PR8849. llvm-svn: 122518
* XFAIL vg_leak the new test as the rest.Torok Edwin2010-12-231-0/+1
| | | | llvm-svn: 122517
* It is possible for SimplifyCFG to cause PHI nodes to become redundant too ↵Owen Anderson2010-12-231-1/+10
| | | | | | | | | | late in the optimization pipeline to be caught by instcombine, and it's not feasible to catch them in SimplifyCFG because the use-lists are in an inconsistent state at the point where it could know that it need to simplify them. Instead, have CodeGenPrepare look for trivially redundant PHIs as part of its general cleanup effort. llvm-svn: 122516
* Add a simple command: 'version' to the command interpreter, and an accompanyingJohnny Chen2010-12-235-1/+105
| | | | | | test case test_help_version(). llvm-svn: 122515
* Chris Lattner has strong opinions about directoryTed Kremenek2010-12-23255-285/+39743
| | | | | | | | | | | | layout. :) Rename the 'EntoSA' directories to 'StaticAnalyzer'. Internally we will still use the 'ento' namespace for the analyzer engine (unless there are further sabre rattlings...). llvm-svn: 122514
* Flag -> Glue, the ongoing sagaChris Lattner2010-12-2324-133/+133
| | | | llvm-svn: 122513
* Kill RecordType::getAddressSpace() and its fixme; that's just not howJohn McCall2010-12-232-7/+0
| | | | | | address spaces work. llvm-svn: 122511
* flags -> glue for selectiondagChris Lattner2010-12-2311-114/+113
| | | | llvm-svn: 122509
* Reimplement the comparison of a class template partialDouglas Gregor2010-12-233-85/+40
| | | | | | | | | | | specialization's template arguments against the primary template's template arguments using the obvious, correct method of checking the injected-class-name type (C++ [temp.class.spec]p9b3). The previous incarnation of this comparison attempted to use its own formulation of the injected-class-name, which is redudant and, with the introduction of variadic templates, became wrong (again). llvm-svn: 122508
* sdisel flag -> glue.Chris Lattner2010-12-233-86/+85
| | | | llvm-svn: 122507
* continue renaming flag -> glue.Chris Lattner2010-12-235-71/+71
| | | | llvm-svn: 122506
* When forming the injected-class-name of a variadic template, theDouglas Gregor2010-12-232-9/+67
| | | | | | | | | template argument corresponding to a template parameter pack is an argument pack of a pack expansion of that template parameter pack. Implements C++0x [temp.dep.type]p2 (at least, as much of it as we can). llvm-svn: 122498
* Fix OCaml bindings crash, PR8847.Torok Edwin2010-12-234-519/+535
| | | | | | | | | | | | | | | | | See http://caml.inria.fr/mantis/view.php?id=4166 If we call only external functions from a module, then its 'let _' bindings don't get executed, which means that the exceptions don't get registered for use in the C code. This in turn causes llvm_raise to call raise_with_arg() with a NULL pointer and cause a segmentation fault. The workaround is to declare all 'external' functions as 'val' in these .mli files. Also added a separate testcase (the testcase must call only external functions for the bug to occur). llvm-svn: 122497
* Remove/fix invalid README entries. The well thought out strcpy function ↵Benjamin Kramer2010-12-231-21/+2
| | | | | | doesn't return a pointer to the end of the string. llvm-svn: 122496
* Remove some obsolete README items, add a new one off the top of my head.Benjamin Kramer2010-12-231-78/+26
| | | | llvm-svn: 122495
* When cast derived to base, only process MemRegionVal.Zhongxing Xu2010-12-231-2/+5
| | | | llvm-svn: 122494
* Rename headers: 'clang/GR' 'clang/EntoSA' andTed Kremenek2010-12-23133-285/+285
| | | | | | update Makefile. llvm-svn: 122493
* Rename static analyzer namespace 'GR' to 'ento'.Ted Kremenek2010-12-23119-209/+209
| | | | llvm-svn: 122492
* Reorganize ListScheduleBottomUp in preparation for modeling machine cycles ↵Andrew Trick2010-12-231-130/+153
| | | | | | and instruction issue. llvm-svn: 122491
* Remove lib/Checker directory.Zhongxing Xu2010-12-230-0/+0
| | | | llvm-svn: 122475
OpenPOWER on IntegriCloud