- Apr 22, 2009
-
-
Daniel Dunbar authored
- This has pros and cons, but for now the pros seem to significantly outway the con. The con is that we will always need to cast in the runtime implementation to a struct type, if we wish to access an interface directly. The pros are: - Avoid the cost of generating types which are used. Most manipulation of Objective-C objects is done through messages, and only the implementation of a class will directly access memory. Previously, we would convert the type even if it only appear as a function parameter, for example. - We don't need to worry about incomplete types, and UpdateCompletedType for interfaces is gone. - It becomes easier to narrow the interface to the shadow struct for Objective-C interfaces (so it can be eliminated). Currently the runtimes still use the CodeGenTypes machinery to generate the LLVM structure they need via ConvertTagDecl, but this can eventually be replaced. llvm-svn: 69797
-
Daniel Dunbar authored
underlying llvm::StructType for an interface. llvm-svn: 69796
-
Daniel Dunbar authored
- If we don't find a file looking relative to the current working directory, fall back to header search. This is closer to what would happen if the lookup was starting from right directory in the first place (except it will find files in the directory of the main source file, which I *think* should not be found). - PR3992. llvm-svn: 69794
-
Daniel Dunbar authored
llvm-svn: 69793
-
Owen Anderson authored
Real fix for PR3549, by using caching for predecessor counts in addition to the predecessors themselves. This halves the time to optimize the testcase, beyond what my previous patch did. llvm-svn: 69792
-
Owen Anderson authored
llvm-svn: 69791
-
Daniel Dunbar authored
llvm-svn: 69790
-
Daniel Dunbar authored
llvm-svn: 69789
-
Owen Anderson authored
Use PredIteratorCache in LCSSA, which gives a 37% overall speedup on the testcase from PR3549. More improvements to come. llvm-svn: 69788
-
Daniel Dunbar authored
- For now, this means we are always doing the address computations by hand instead of constructing a proper GEP. Right now, however, this is less important than having fewer entry points to dealing with Objective-C interface layout. llvm-svn: 69787
-
Daniel Dunbar authored
llvm-svn: 69786
-
Owen Anderson authored
Patch by Peter Johnson. llvm-svn: 69785
-
Chris Lattner authored
llvm-svn: 69784
-
Chris Lattner authored
llvm-svn: 69783
-
Chris Lattner authored
llvm-svn: 69782
-
Chris Lattner authored
llvm-svn: 69781
-
Chris Lattner authored
way to serialize selectors yet. llvm-svn: 69780
-
Chris Lattner authored
fix a couple of bugs in reader support for ObjCInterfaceDecl, and add support for reading ObjCInterfaceType. llvm-svn: 69779
-
Chris Lattner authored
llvm-svn: 69778
-
Chris Lattner authored
start of the declspec. The fixit still goes there, and we underline the declspec. This helps when the start of the declspec came from a macro that expanded from a system header. For example, we now produce: t.c:2:8: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] static x; ~~~~~~ ^ llvm-svn: 69777
-
Ted Kremenek authored
llvm-svn: 69776
-
Daniel Dunbar authored
llvm-svn: 69775
-
Douglas Gregor authored
Reorganize built-in initialization to separate the creation of target builtins from marking IdentifierInfos as builtins. No functionality change llvm-svn: 69774
-
Daniel Dunbar authored
llvm-svn: 69773
-
Daniel Dunbar authored
llvm-svn: 69772
-
Daniel Dunbar authored
- Superclasses are now always laid out their shadow structure at the first field. - Prior to this, the entire class heirarchy was flattened into a single structure which meant that alignment, padding, and bitfields weren't packed correctly (the ASTRecordLayout was correct however, which meant our debug info didn't coincide with ivar offsets, for example). - This is still very suboptimal, but I believe the ivar layout itself is now at least close to correct. - <rdar://problem/6773388> error: objc[29823]: layout bitmap sliding backwards llvm-svn: 69771
-
rdar://6814950Chris Lattner authored
by marking the predefines buffer as a system header. The problem with stdint is that it was getting problems like this: /Volumes/Projects/cvs/llvm/Debug/lib/clang/1.0/include/stdint.h:43:9: warning: 'long long' is an extension when C99 mode is not enabled typedef __INT64_TYPE__ int64_t; ^ <built-in>:73:29: note: instantiated from: #define __INT64_TYPE__ long long ^ We correctly silence warnings in system headers, but only if the spelling location of the token came from the system header. This is designed so that if you use a system macro in your code that you don't get punished for its definition. This is all cool except that the predefines buffer wasn't considered a system header. llvm-svn: 69770
-
Chris Lattner authored
llvm-svn: 69767
-
Chris Lattner authored
7 left for 64-bit ABI. llvm-svn: 69766
-
Chris Lattner authored
llvm-svn: 69765
-
Chris Lattner authored
llvm-svn: 69764
-
Chris Lattner authored
produces just 14 dead "declares" in llvm ir instead of 19. llvm-svn: 69763
-
Chris Lattner authored
rdar://6809612 llvm-svn: 69762
-
Chris Lattner authored
llvm-svn: 69761
-
Chris Lattner authored
for scoping to match C99 even when in C89 mode. This patch fixes this (eliminating a "redefinition of thisKey" error), and also prevents non-sensical diagnostics in -pedantic mode like this: t.m:7:8: warning: variable declaration in for loop is a C99-specific feature for (id thisKey in keys) ; ^ llvm-svn: 69760
-
Douglas Gregor authored
llvm-svn: 69758
-
Douglas Gregor authored
llvm-svn: 69757
-
Chris Lattner authored
extern. Previously we would warn about it and ignore the attribute. This is incorrect, it should be handled as a c89 "extern inline" function. Many thanks to Matthieu Castet for pointing this out and beating me over the head until I got it. PR3988: extern inline function are not externally visible llvm-svn: 69756
-
Douglas Gregor authored
This optimization improves performance on the Carbon-prefixed "Hello, World!" example by 57%. For reference, we're now about 2.25x faster than GCC PCH. We're also pulling in far less of the PCH file: *** PCH Statistics: 411/20693 types read (1.986179%) 2553/59230 declarations read (4.310316%) 1093/44646 identifiers read (2.448148%) 1/32954 statements read (0.003035%) 21/6187 macros read (0.339421%) llvm-svn: 69755
-
Ted Kremenek authored
llvm-svn: 69754
-