| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
debug intrinsics, and an unconditional branch when possible. This
reuses the TryToSimplifyUncondBranchFromEmptyBlock function split
out of simplifycfg.
llvm-svn: 86722
|
| |
|
|
| |
llvm-svn: 86721
|
| |
|
|
| |
llvm-svn: 86720
|
| |
|
|
| |
llvm-svn: 86719
|
| |
|
|
| |
llvm-svn: 86717
|
| |
|
|
| |
llvm-svn: 86715
|
| |
|
|
| |
llvm-svn: 86714
|
| |
|
|
|
|
| |
correctly
llvm-svn: 86712
|
| |
|
|
|
|
| |
from the logic part of clang-cc, and to enforce limited scoping.
llvm-svn: 86711
|
| |
|
|
| |
llvm-svn: 86710
|
| |
|
|
|
|
| |
instead of reproducing their logic.
llvm-svn: 86709
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handling template template parameters properly. This refactoring:
- Parses template template arguments as id-expressions, representing
the result of the parse as a template name (Action::TemplateTy)
rather than as an expression (lame!).
- Represents all parsed template arguments via a new parser-specific
type, ParsedTemplateArgument, which stores the kind of template
argument (type, non-type, template) along with all of the source
information about the template argument. This replaces an ad hoc
set of 3 vectors (one for a void*, which was either a type or an
expression; one for a bit telling whether the first was a type or
an expression; and one for a single source location pointing at
the template argument).
- Moves TemplateIdAnnotation into the new Parse/Template.h. It never
belonged in the Basic library anyway.
llvm-svn: 86708
|
| |
|
|
|
|
|
|
|
|
| |
[r0, #2 * 4]
Now
[r0, #8]
This makes Thumb2 assembly more uniform and frankly the scale doesn't add much.
llvm-svn: 86707
|
| |
|
|
| |
llvm-svn: 86706
|
| |
|
|
| |
llvm-svn: 86705
|
| |
|
|
|
|
| |
(Ted's feedback).
llvm-svn: 86702
|
| |
|
|
|
|
| |
global array of objects.
llvm-svn: 86701
|
| |
|
|
|
|
| |
'displayDiagnostics' option to 1 in clang_createIndex(). This fixes <rdar://problem/7370691>.
llvm-svn: 86700
|
| |
|
|
| |
llvm-svn: 86699
|
| |
|
|
|
|
|
|
|
|
|
|
| |
anything that ends with ++ or ++-FOO (e.g., c++, clang++, clang++-1.1) as being
a "C++ compiler".
This allows easy testing of the C++ compiler by 'ln -s clang clang++', or by 'cp
clang clang++'.
Based on patch by Roman Divacky.
llvm-svn: 86697
|
| |
|
|
| |
llvm-svn: 86696
|
| |
|
|
|
|
|
|
|
|
| |
- Force NDEBUG on in any Release build. This drops the compile time to ~100s
from ~600s, in Release mode.
- This may just be a temporary workaround, I don't know the true nature of the
gcc-4.2 compile time performance problem.
llvm-svn: 86695
|
| |
|
|
| |
llvm-svn: 86694
|
| |
|
|
|
|
|
|
|
|
|
| |
- This is conceptually better since the only thing we want this option to do is
preserve the internal module as constructed by IRgen, before running any
passes.
- This also fixes bugs in -disable-llvm-optzns handling with regards to debug
info.
llvm-svn: 86691
|
| |
|
|
| |
llvm-svn: 86690
|
| |
|
|
| |
llvm-svn: 86689
|
| |
|
|
| |
llvm-svn: 86686
|
| |
|
|
| |
llvm-svn: 86685
|
| |
|
|
| |
llvm-svn: 86684
|
| |
|
|
| |
llvm-svn: 86683
|
| |
|
|
| |
llvm-svn: 86681
|
| |
|
|
|
|
|
| |
although in this case we probably just run a risk of duplicating work;
I can't think of how this could cause a bug.
llvm-svn: 86680
|
| |
|
|
|
|
|
|
|
| |
using directives, and fix a bug thereby exposed: since we're playing
tricks with pointers, we need to make certain we're always using the same
pointers for things.
Also tweak an existing error message.
llvm-svn: 86679
|
| |
|
|
|
|
| |
just throw them away.
llvm-svn: 86678
|
| |
|
|
| |
llvm-svn: 86677
|
| |
|
|
|
|
| |
size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size
llvm-svn: 86676
|
| |
|
|
|
|
| |
Value V is a multiple of unsigned Base
llvm-svn: 86675
|
| |
|
|
| |
llvm-svn: 86674
|
| |
|
|
|
|
|
|
| |
This is reasonable because people know what they are doing when they
intentionally dereference the pointer.
So now we only emit warning when a pointer variable is use literally.
llvm-svn: 86673
|
| |
|
|
| |
llvm-svn: 86672
|
| |
|
|
|
|
|
|
| |
being generated.
Add the most derived vtable pointer to the VTT.
llvm-svn: 86671
|
| |
|
|
|
|
|
| |
of a computation. This fixes some infinite loops when dealing with TD that
has no native types.
llvm-svn: 86670
|
| |
|
|
|
|
| |
This is a pretty minimal test case; I'll make a better one later.
llvm-svn: 86669
|
| |
|
|
| |
llvm-svn: 86668
|
| |
|
|
|
|
|
| |
memory just like a store" with bug fixed (partial-overwrite.ll is the
regression test).
llvm-svn: 86667
|
| |
|
|
| |
llvm-svn: 86666
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
or a pointer to an NSString, emit a code insertion hint that turns it into an Objective-C string. For example:
@class NSString;
@interface Test
+ (void)test:(NSString *)string;
@end
void g(NSString *a);
void f() {
NSString *a = "Foo";
g("Foo");
[Test test:"Foo"];
}
will produce
t.m:10:17: warning: incompatible pointer types initializing 'char [4]', expected 'NSString *'
NSString *a = "Foo";
^~~~~
@
t.m:11:5: warning: incompatible pointer types passing 'char [4]', expected 'NSString *'
g("Foo");
^~~~~
@
t.m:12:14: warning: incompatible pointer types sending 'char [4]', expected 'NSString *'
[Test test:"Foo"];
^~~~~
@
3 diagnostics generated.
llvm-svn: 86665
|
| |
|
|
| |
llvm-svn: 86664
|
| |
|
|
| |
llvm-svn: 86663
|
| |
|
|
|
|
| |
warnings.
llvm-svn: 86662
|