- Feb 28, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 126627
-
Argyrios Kyrtzidis authored
llvm-svn: 126626
-
Argyrios Kyrtzidis authored
llvm-svn: 126625
-
Argyrios Kyrtzidis authored
llvm-svn: 126624
-
Argyrios Kyrtzidis authored
llvm-svn: 126623
-
Argyrios Kyrtzidis authored
llvm-svn: 126622
-
Argyrios Kyrtzidis authored
llvm-svn: 126621
-
Argyrios Kyrtzidis authored
llvm-svn: 126620
-
Argyrios Kyrtzidis authored
llvm-svn: 126619
-
Argyrios Kyrtzidis authored
llvm-svn: 126618
-
Argyrios Kyrtzidis authored
llvm-svn: 126617
-
Argyrios Kyrtzidis authored
llvm-svn: 126616
-
Argyrios Kyrtzidis authored
llvm-svn: 126615
-
Argyrios Kyrtzidis authored
llvm-svn: 126614
-
Argyrios Kyrtzidis authored
llvm-svn: 126613
-
Argyrios Kyrtzidis authored
-Now it gets enabled with '-analyzer-checker=DeadStores'. -The driver passes the above flag by default. llvm-svn: 126612
-
Argyrios Kyrtzidis authored
llvm-svn: 126611
-
Argyrios Kyrtzidis authored
llvm-svn: 126610
-
Argyrios Kyrtzidis authored
Turns -analyzer-check-buffer-overflows into -analyzer-checker=core.experimental.Overflow llvm-svn: 126609
-
Argyrios Kyrtzidis authored
llvm-svn: 126608
-
Argyrios Kyrtzidis authored
llvm-svn: 126607
-
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
-