- Mar 04, 2011
-
-
Bill Wendling authored
llvm-svn: 127039
-
Devang Patel authored
Emit a stop point before a call expression so that debugger has some chance of getting some footing when user wants to stop at 2nd bar() in following expression when all function calls are inlined. = bar() + ... + bar() + ... clang keeps track of column numbers, so we could put location entries for all subexpressions but that will significantly bloat debug info in general, but a location for call expression is helpful here. llvm-svn: 127018
-
John McCall authored
this can have any optimization effect, given the opacity of objects pointers, but you never know. llvm-svn: 126990
-
John McCall authored
llvm-svn: 126989
-
John McCall authored
bugs with such types. Not sure this is quite how I want the desugaring and a.k.a. logic to go, but it suffices. llvm-svn: 126986
-
- Mar 03, 2011
-
-
Devang Patel authored
This fixes few blocks.exp regressions. llvm-svn: 126960
-
- Mar 02, 2011
-
-
Dan Gohman authored
llvm-svn: 126890
-
Tilmann Scheller authored
This reverts commit 126863. llvm-svn: 126886
-
Benjamin Kramer authored
llvm-svn: 126883
-
Tilmann Scheller authored
This reverts commit 126865. llvm-svn: 126876
-
Devang Patel authored
llvm-svn: 126874
-
Fariborz Jahanian authored
// rdar://8604515. llvm-svn: 126869
-
Tilmann Scheller authored
llvm-svn: 126865
-
Tilmann Scheller authored
llvm-svn: 126863
-
Devang Patel authored
Encode argument numbering in debug info so that code generator can emit them in order. This fixes few blocks.exp regressions. Reapply r126795 with a fix (one character change) for gdb testsuite regressions. llvm-svn: 126858
-
Devang Patel authored
llvm-svn: 126848
-
John McCall authored
captured __block variables in the block-literal type. llvm-svn: 126834
-
Eli Friedman authored
can't overflow due to promotion rules; emit a wrapping add for those cases. llvm-svn: 126816
-
- Mar 01, 2011
-
-
Devang Patel authored
This fixes few blocks.exp regressions. llvm-svn: 126795
-
Fariborz Jahanian authored
The prototype for objc_msgSend() is technically variadic - `id objc_msgSend(id, SEL, ...)`. But all method calls should use a prototype that matches the method, not the prototype for objc_msgSend itself(). // rdar://9048030 llvm-svn: 126754
-
Chris Lattner authored
arithmetic. This is part of PR9256, it would be great if someone else wired up -fno-strict-overflow in the driver to -fwrapv. llvm-svn: 126718
-
- Feb 28, 2011
-
-
Devang Patel authored
llvm-svn: 126691
-
Fariborz Jahanian authored
llvm-svn: 126685
-
Fariborz Jahanian authored
The prototype for objc_msgSend() is technically variadic - `id objc_msgSend(id, SEL, ...)`. But all method calls should use a prototype that matches the method, not the prototype for objc_msgSend itself(). // rdar://9048030 llvm-svn: 126678
-
Chris Lattner authored
compound stmt containing the decl is skipped. llvm-svn: 126639
-
Chris Lattner authored
llvm-svn: 126638
-
Anders Carlsson authored
C++ exceptions, even when exceptions have been turned off using -fno-exceptions. Make the -fobjc-exceptions flag do the same thing, but for Objective-C exceptions. C++ and Objective-C exceptions can also be disabled using -fno-cxx-excptions and -fno-objc-exceptions. llvm-svn: 126630
-
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
-
Chris Lattner authored
llvm-svn: 126600
-
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
a bool + success into one tri-state integer, simplifying things. llvm-svn: 126592
-
- Feb 26, 2011
-
-
John McCall authored
to give us a non-null return slot. llvm-svn: 126544
-
John McCall authored
send before making the call. Fixes rdar://problem/7854674 llvm-svn: 126543
-
John McCall authored
char-width agnostic. llvm-svn: 126542
-
John McCall authored
loading references as part of that. Use 'char' TBAA when accessing (immediate!) fields of a may_alias struct; fixes PR9307. llvm-svn: 126540
-
- Feb 25, 2011
-
-
John McCall authored
necessarily enclose the innermost normal cleanup depth, because the top of the jump scope stack might be an EH cleanup or EH scope. Fixes PR9303. llvm-svn: 126472
-
- Feb 24, 2011
-
-
Rafael Espindola authored
in PR9301. llvm-svn: 126422
-