- Feb 28, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 126606
-
Argyrios Kyrtzidis authored
only allow a checker to be registered once. llvm-svn: 126605
-
Bill Wendling authored
tagging and branching for the release. I will update this more throughout the 2.9 release process. llvm-svn: 126604
-
Chris Lattner authored
llvm-svn: 126603
-
Chris Lattner authored
compound statements and break statements. This implements enough to handle PR9322 and rdar://6970405. llvm-svn: 126602
-
Anders Carlsson authored
llvm-svn: 126601
-
Chris Lattner authored
llvm-svn: 126600
-
Anders Carlsson authored
llvm-svn: 126599
-
Anders Carlsson authored
llvm-svn: 126598
-
Chris Lattner authored
live case of a switch statement when switching on a constant. This is terribly limited, but enough to handle the trivial example included. Before we would emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 switch i32 1, label %sw.epilog [ i32 1, label %sw.bb ] sw.bb: ; preds = %entry %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 br label %sw.epilog sw.epilog: ; preds = %sw.bb, %entry switch i32 0, label %sw.epilog3 [ i32 1, label %sw.bb1 ] sw.bb1: ; preds = %sw.epilog %tmp2 = load i32* %i.addr, align 4 %add = add nsw i32 %tmp2, 2 store i32 %add, i32* %i.addr, align 4 br label %sw.epilog3 sw.epilog3: ; preds = %sw.bb1, %sw.epilog ret void } now we emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 ret void } This improves -O0 compile time (less IR to generate and shove through the code generator) and the clever linux kernel people found a way to fail to build if we don't do this optimization. This step isn't enough to handle the kernel case though. llvm-svn: 126597
-
Chris Lattner authored
llvm-svn: 126596
-
Chris Lattner authored
llvm-svn: 126595
-
Chris Lattner authored
llvm-svn: 126594
-
Douglas Gregor authored
nested-name-specifier, e.g., T::template apply<U>:: represent the dependent template name specialization as a DependentTemplateSpecializationType, rather than a TemplateSpecializationType with a dependent TemplateName. llvm-svn: 126593
-
Chris Lattner authored
a bool + success into one tri-state integer, simplifying things. llvm-svn: 126592
-
- Feb 27, 2011
-
-
Chris Lattner authored
scope. llvm-svn: 126591
-
Chris Lattner authored
llvm-svn: 126590
-
Douglas Gregor authored
specifiers such as typename T::template apply<U> Previously, we would turn T::template apply<U> into a TemplateSpecializationType. Then, we'd reprocess that TemplateSpecializationType and turn it into either a TemplateSpecializationType wrapped in an ElaboratedType (when we could resolve "apply" to a template declaration) or a DependentTemplateSpecializationType. We now produce the same ASTs but without generating the intermediate TemplateSpecializationType. The end goal here is to avoid generating TemplateSpecializationTypes with dependent template-names, ever. We're not there yet. llvm-svn: 126589
-
Howard Hinnant authored
Fix copy_n to increment only n-1 times for an input iterator. This works much better with std::istream_iterator<int>(std::cin). Credit: Matan Nassau. llvm-svn: 126581
-
Rafael Espindola authored
necessary anymore. llvm-svn: 126580
-
Rafael Espindola authored
llvm-svn: 126579
-
Benjamin Kramer authored
llvm-svn: 126578
-
Benjamin Kramer authored
GCC -Waddress warns about this but clang doesn't (PR9043). llvm-svn: 126577
-
Howard Hinnant authored
Fixed two problems found by Chris Jefferson: Made operator>> for char consistent with gcc. Opened an LWG issue on this one. 2) Renamed some private typedefs which are causing boost grief. llvm-svn: 126576
-
Duncan Sands authored
llvm-svn: 126574
-
Duncan Sands authored
llvm-svn: 126573
-
Oscar Fuentes authored
llvm-svn: 126572
-
Oscar Fuentes authored
llvm-svn: 126571
-
NAKAMURA Takumi authored
Target/X86: Always emit "push/pop GPRs" in prologue/epilogue and emit "spill/reload frames" for XMMs. It improves Win64's prologue/epilogue but it would not affect ia32 and amd64 (lack of nonvolatile XMMs). llvm-svn: 126568
-
-
Cameron Zwarich authored
llvm-svn: 126566
-
Nadav Rotem authored
llvm-svn: 126565
-
Tobias Grosser authored
llvm-svn: 126564
-
Tobias Grosser authored
llvm-svn: 126563
-
Tobias Grosser authored
This follows the interface of getNodeAttributes. llvm-svn: 126562
-
Frits van Bommel authored
Fix this test case for CMake builds after r126502, which sneakily changed the actual executable name to clang-<version>. llvm-svn: 126560
-
Daniel Dunbar authored
llvm-svn: 126559
-
Daniel Dunbar authored
llvm-svn: 126558
-
- Feb 26, 2011
-
-
Benjamin Kramer authored
Add some DAGCombines for (adde 0, 0, glue), which are useful to optimize legalized code for large integer arithmetic. 1. Inform users of ADDEs with two 0 operands that it never sets carry 2. Fold other ADDs or ADDCs into the ADDE if possible It would be neat if we could do the same thing for SETCC+ADD eventually, but we can't do that in target independent code. llvm-svn: 126557
-
Alexis Hunt authored
This successfully performs constructor lookup and verifies that a delegating initializer is the only initializer present. This does not perform loop detection in the initialization, but it also doesn't codegen delegating constructors at all, so this won't cause runtime infinite loops yet. llvm-svn: 126552
-