summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* C1X: implement generic selectionsPeter Collingbourne2011-04-1540-57/+845
| | | | | | | As an extension, generic selection support has been added for all supported languages. The syntax is the same as for C1X. llvm-svn: 129554
* C1X: add a language standardPeter Collingbourne2011-04-159-8/+35
| | | | llvm-svn: 129553
* For t2BFI, both Inst{26} and Inst{5} "should" be 0.Johnny Chen2011-04-151-0/+4
| | | | | Ref: I.1 Instruction encoding diagrams and pseudocode llvm-svn: 129552
* Add 3DNow! intrinsics.Michael J. Spencer2011-04-154-49/+449
| | | | llvm-svn: 129551
* The ARM disassembler did not handle the alignment correctly for VLD*DUP* ↵Johnny Chen2011-04-153-0/+43
| | | | | | | | instructions (single element or n-element structure to all lanes). llvm-svn: 129550
* Do not expand the opencl pragma names. This is so you can also have a define ↵Tanya Lattner2011-04-141-1/+1
| | | | | | named the samed as the pragma and they do not interfere (ie. cl_khr_fp64). llvm-svn: 129549
* Follow up on r127913. Fix Thumb revsh isel. rdar://9286766Evan Cheng2011-04-142-1/+65
| | | | llvm-svn: 129548
* If the declaration of a C++ member function with an inline definitionDouglas Gregor2011-04-142-0/+23
| | | | | | | is so broken that Sema can't form a declaration for it, don't bother trying to parse the definition later. Fixes <rdar://problem/9221993>. llvm-svn: 129547
* Add an instcombine for constructs like a | -(b != c); a select is moreEli Friedman2011-04-142-1/+27
| | | | | | | canonical, and generally leads to better code. Found while looking at an article about saturating arithmetic. llvm-svn: 129545
* When we transform a C++ exception declaration (e.g., for templateDouglas Gregor2011-04-142-8/+5
| | | | | | | | instantiation), be sure to add the transformed declaration into the current DeclContext. Also, remove the -Wuninitialized hack that works around this bug. Fixes <rdar://problem/9200676>. llvm-svn: 129544
* Rewording of assert message.Johnny Chen2011-04-141-1/+1
| | | | llvm-svn: 129543
* Add a test to check that lldb reliably catches a crashing inferior (both ↵Johnny Chen2011-04-143-0/+92
| | | | | | command and Python API). llvm-svn: 129542
* Add support for C++0x's range-based for loops, as specified by the C++11 ↵Richard Smith2011-04-1447-48/+1961
| | | | | | draft standard (N3291). llvm-svn: 129541
* Detect when the string "<::" is found in code after a cast or template name ↵Richard Smith2011-04-144-5/+121
| | | | | | | | and is interpreted as "[:" because of the digraph "<:". When found, give an error with a fix-it to add whitespace between the "<" and "::". Patch by Richard Trieu! Plus a small tweak from me to deal with one of the tokens coming from a macro. llvm-svn: 129540
* Harden Clang's cursor visitation logic against NULL declaration,Douglas Gregor2011-04-141-5/+16
| | | | | | | statement, and expression pointers. While these shouldn't happen, it's better to be safe in libclang. llvm-svn: 129539
* Fix an infinite alternation in JumpThreading where two transforms would ↵Owen Anderson2011-04-142-3/+46
| | | | | | | | | | repeatedly undo each other. The solution is to perform more aggressive constant folding to make one of the edges just folded away rather than trying to thread it. Fixes <rdar://problem/9284786>. Discovered with CSmith. llvm-svn: 129538
* Match pointer of compatible vection types. Fariborz Jahanian2011-04-142-0/+35
| | | | | | // rdar://9208404 llvm-svn: 129536
* When determining the "usage" type of a declaration for the purposes of code Douglas Gregor2011-04-142-2/+45
| | | | | | | completion, look through block pointer and function pointer types to the result type of the block/function. Fixes <rdar://problem/9282583>. llvm-svn: 129535
* Implement ARM pcs attribute. Basically it's another way of calling ↵Anton Korobeynikov2011-04-1414-11/+119
| | | | | | | | | | convention selection (AAPCS or AAPCS+VFP), similar to fastcall / stdcall / whatevercall seen on x86. In particular, all library functions should always be AAPCS regardless of floating point ABI used. llvm-svn: 129534
* Name mangling of late-specified return types doesn't work if the return type ↵Richard Smith2011-04-141-1/+1
| | | | | | | | | | references the argument types: template<typename T> auto f(T a) -> decltype(a.foo()); Since this is the primary reason for the introduction of this feature, downgrade implementation status to "Some examples work". llvm-svn: 129533
* Cleanup r129509 based on comments by ChrisMon P Wang2011-04-141-7/+6
| | | | llvm-svn: 129532
* Add sanity checkings for Thumb2 Load/Store Register Exclusive family of ↵Johnny Chen2011-04-145-4/+74
| | | | | | operations. llvm-svn: 129531
* move PR9661 out to here.Chris Lattner2011-04-141-0/+24
| | | | llvm-svn: 129527
* Implement C++0x [lex.pptoken]p3's handling of <::.Richard Smith2011-04-142-0/+26
| | | | llvm-svn: 129525
* Fix another instance of the DAG combiner not using the correct type for the ↵Owen Anderson2011-04-141-3/+5
| | | | | | RHS of a shift. llvm-svn: 129522
* Parse an '@' in an Objective-C++ class member specification,Douglas Gregor2011-04-143-2/+31
| | | | | | | diagnosing it as an error rather than looping infinitely. Also, explicitly disallow @defs in Objective-C++. Fixes <rdar://problem/9260136>. llvm-svn: 129521
* Think-o in poisson_distribution at mean == 10Howard Hinnant2011-04-141-1/+1
| | | | llvm-svn: 129520
* tests: Remove a FrontendC test which is no longer valid.Daniel Dunbar2011-04-141-11/+0
| | | | llvm-svn: 129519
* Change ELF systems to use CFI for producing the EH tables. This reduces theRafael Espindola2011-04-149-33/+91
| | | | | | size of the clang binary in Debug builds from 690MB to 679MB. llvm-svn: 129518
* Fix whitespace and tabs.Michael J. Spencer2011-04-142-55/+55
| | | | llvm-svn: 129517
* Chained PCH: Remember when additional specializations are added to a ↵Sebastian Redl2011-04-148-1/+75
| | | | | | function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there. llvm-svn: 129516
* Add header guards to include/clang/Basic/ConvertUTF.h.Sebastian Redl2011-04-141-0/+5
| | | | llvm-svn: 129515
* Fix -H. It was pretty broken.Sebastian Redl2011-04-141-5/+9
| | | | llvm-svn: 129514
* The ASTReader created by -chain-include used the generated PCH buffers in ↵Sebastian Redl2011-04-141-2/+2
| | | | | | the wrong order. The effect was that all but the first chain-include files was ignored for subsequent compilations. llvm-svn: 129513
* Cleanup r129472 by using a utility routine as suggested by Eli.Mon P Wang2011-04-141-51/+43
| | | | llvm-svn: 129509
* In the pre-RA scheduler, maintain cmp+br proximity.Andrew Trick2011-04-148-25/+139
| | | | | | | | | | | | | | | | | | | | | | | | This is done by pushing physical register definitions close to their use, which happens to handle flag definitions if they're not glued to the branch. This seems to be generally a good thing though, so I didn't need to add a target hook yet. The primary motivation is to generate code closer to what people expect and rule out missed opportunity from enabling macro-op fusion. As a side benefit, we get several 2-5% gains on x86 benchmarks. There is one regression: SingleSource/Benchmarks/Shootout/lists slows down be -10%. But this is an independent scheduler bug that will be tracked separately. See rdar://problem/9283108. Incidentally, pre-RA scheduling is only half the solution. Fixing the later passes is tracked by: <rdar://problem/8932804> [pre-RA-sched] on x86, attempt to schedule CMP/TEST adjacent with condition jump Fixes: <rdar://problem/9262453> Scheduler unnecessary break of cmp/jump fusion llvm-svn: 129508
* Documented bugpoint --compile-custom --compile-command.Andrew Trick2011-04-141-2/+16
| | | | | | I've used it a few times to reduce unit tests and gotten one request for information on it. It's not easy to use correctly because bugpoint doesn't tell you when you're doing it wrong. llvm-svn: 129507
* add a minor missed dag combine that is blocking mid-level optimizationChris Lattner2011-04-141-0/+76
| | | | | | improvements, that will lead to fixing PR6627. llvm-svn: 129504
* sink a call into its only use.Chris Lattner2011-04-141-2/+1
| | | | llvm-svn: 129503
* rework FoldBranchToCommonDest to exit earlier when there is a bonusChris Lattner2011-04-141-39/+30
| | | | | | | | | | | | instruction around, reducing work. Greatly simplify handling of debug instructions. There is no need to build up a vector of them and then move them into the one predecessor if we're processing a block. Instead just rescan the block and *copy* them into the pred. If a block gets merged into multiple preds, this will retain more debug info. llvm-svn: 129502
* fix a couple -Wsign-compare warnings.Chris Lattner2011-04-141-2/+2
| | | | llvm-svn: 129501
* Updated LLVM to pick up fixes to the ARM instructionSean Callanan2011-04-144-3/+23
| | | | | | tables. llvm-svn: 129500
* Return the correct lastly populated block from ↵Ted Kremenek2011-04-141-2/+4
| | | | | | CFGBuilder::VisitUnaryExprOrTypeTraitExpr(). llvm-svn: 129499
* As Dan pointed out, movzbl, movsbl, and friends are nicer than their aliasBill Wendling2011-04-1429-121/+112
| | | | | | (movzx/movsx) because they give more information. Revert that part of the patch. llvm-svn: 129498
* Have the X86 back-end emit the alias instead of what's being aliased. In mostBill Wendling2011-04-1433-163/+175
| | | | | | cases, it's much nicer and more informative reading the alias. llvm-svn: 129497
* Replace a couple of divide-by-8s with divide-by-charwidths. No change inKen Dyck2011-04-141-2/+4
| | | | | | functionality intended. llvm-svn: 129496
* Re-fix r129481 and r129465 properly. Nulls fixits shouldn't be dropped inEli Friedman2011-04-142-7/+2
| | | | | | | DiagnosticBuilder::AddFixItHint: they will be dropped along with any other (possibly valid) fixits later. llvm-svn: 129495
* When creating an implicit member expression through a qualified-id, check ↵Argyrios Kyrtzidis2011-04-142-9/+26
| | | | | | | | | | that the class named by the nested-name-specifier is same or base of the class in which the member expression appears. It seems we also had an ill-formed test case, mon dieu! Fixes rdar://8576107. llvm-svn: 129493
* <rdar://problem/9282305> install an archive for dyld and fix missing -staticNick Kledzik2011-04-141-3/+24
| | | | llvm-svn: 129492
* Replace a couple of divisions-by-'8' with divisions-by-charwidth. No changeKen Dyck2011-04-141-2/+2
| | | | | | in functionality intended. llvm-svn: 129491
OpenPOWER on IntegriCloud