| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
variables.
No intended functionality change.
llvm-svn: 67478
|
|
|
|
|
|
|
| |
very simple places, reimplement the deferred decl emission logic to not be O(N^2),
fixing PR3810.
llvm-svn: 67447
|
|
|
|
|
|
| |
function definition.
llvm-svn: 67446
|
|
|
|
|
|
| |
code path.
llvm-svn: 67445
|
|
|
|
|
|
| |
GetAddrOfFunction. This is simpler and more efficient.
llvm-svn: 67444
|
|
|
|
|
|
|
| |
CreateFunctionPrototypeIR, though my next patch will eliminate
it entirely.
llvm-svn: 67443
|
|
|
|
| |
llvm-svn: 67439
|
|
|
|
|
|
| |
more optimistic that it will work (optimizing for the common case).
llvm-svn: 67438
|
|
|
|
|
|
| |
- PR3818.
llvm-svn: 67297
|
|
|
|
|
|
|
| |
module symbol table. The root problem inspiring this was fixed in
r66316 (and again in r66506).
llvm-svn: 66512
|
|
|
|
|
|
| |
reuse the prior one.
llvm-svn: 66408
|
|
|
|
| |
llvm-svn: 66335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CodeGenModule::CreateRuntimeVariable.
- No real functionality change; although we now assert on silly
things like:
--
int objc_exception_throw;
void f0() { @throw(@"A"); }
--
instead of accepting it.
llvm-svn: 66292
|
|
|
|
| |
llvm-svn: 66046
|
|
|
|
|
|
|
|
|
| |
BlockModule. No functionality change. This should help people that
don't want to know anything about blocks not be confused by the
overloaded use of the term block or nor want to see all the blocks
goop.
llvm-svn: 66042
|
|
|
|
|
|
| |
people. De-duplicates BLOCK_NEEDS_FREE and friends.
llvm-svn: 66034
|
|
|
|
|
|
|
| |
still give an unsupported error for them due to the fact this is a
work in progress.
llvm-svn: 66007
|
|
|
|
|
|
|
|
|
| |
we ensure that things added to the module can be found even when they
are not in GlobalDeclMap. The later is for increased flexibility,
should someone want to do something tricky like extern "Ada" in the
same module.
llvm-svn: 65657
|
|
|
|
|
|
|
| |
The big difference here is that (like string literal) @encode has
array type, not pointer type.
llvm-svn: 65391
|
|
|
|
| |
llvm-svn: 65372
|
|
|
|
|
|
| |
- <rdar://problem/6584606> clang/x86-64 - too many reg saves
llvm-svn: 65032
|
|
|
|
|
|
| |
The size calculation is improved.
llvm-svn: 64994
|
|
|
|
| |
llvm-svn: 64984
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IRgen no longer relies on isConstantInitializer, instead we just try
to emit the constant. If that fails then in C we emit an error
unsupported (this occurs when Sema accepted something that it doesn't
know how to fold, and IRgen doesn't know how to emit) and in C++ we
emit a guarded initializer.
This ends up handling a few more cases, because IRgen was actually
able to emit some of the constants Sema accepts but can't Evaluate().
For example, PR3398.
llvm-svn: 64780
|
|
|
|
|
|
| |
Thanks Anders.
llvm-svn: 64571
|
|
|
|
|
|
| |
starting to work for blocks.
llvm-svn: 64570
|
|
|
|
|
|
| |
- PR3566
llvm-svn: 64492
|
|
|
|
|
|
|
|
| |
- Fix emission of static functions with constructor attribute while I
was here.
<rdar://problem/6140899> [codegen] "static" and attribute-constructor interact poorly
llvm-svn: 64488
|
|
|
|
|
|
|
| |
for attribute used support.
- No functionality change.
llvm-svn: 64487
|
|
|
|
| |
llvm-svn: 64486
|
|
|
|
| |
llvm-svn: 64481
|
|
|
|
| |
llvm-svn: 64479
|
|
|
|
| |
llvm-svn: 64475
|
|
|
|
| |
llvm-svn: 64473
|
|
|
|
| |
llvm-svn: 64461
|
|
|
|
| |
llvm-svn: 64452
|
|
|
|
| |
llvm-svn: 64451
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ABI to the CodeGen library. Since C++ code-generation is so
incomplete, we can't exercise much of this mangling code. However, a
few smoke tests show that it's doing the same thing as GCC. When C++
codegen matures, we'll extend the ABI tester to verify name-mangling
as well, and complete the implementation here.
At this point, the major client of name mangling is in the uses of the
new "overloadable" attribute in C, which allows overloading. Any
"overloadable" function in C (or in an extern "C" block in C++) will
be mangled the same way that the corresponding C++ function would be
mangled.
llvm-svn: 64413
|
|
|
|
| |
llvm-svn: 64387
|
|
|
|
|
|
|
| |
- Lift CGFunctionInfo creation above ReturnTypeUsesSret and
EmitFunction{Epi,Pro}log.
llvm-svn: 63553
|
|
|
|
|
|
| |
function/call info.
llvm-svn: 63466
|
|
|
|
|
|
|
| |
When emitting the static variables we need to make sure that the order is preserved.
Fix this by making StaticDecls a std::list which has O(1) random removal.
llvm-svn: 61621
|
|
|
|
|
|
|
| |
(first) global holding the string.
- No functionality change.
llvm-svn: 57736
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
collisions.
- Provide CodeGenModule::CreateRuntimeFunction which guarantees that
the function it creates will have the provided name in the final
module. This allows the runtime to have its functions protected
from declarations of the same name in the source code.
- One could argue that this is a reason to abuse the llvm::Module
namespace for dealing with function redeclarations. However, that
approach seems conceptually flawed to me. This one also happens to
be somewhat more efficient.
No functionality change.
llvm-svn: 56899
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage
- to implement function notes as function attributes and
- to distinguish between function attributes and return value attributes.
llvm-svn: 56623
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added CodeGenTypes::GetFunctionType, taking a CGFunctionInfo.
- Updated Obj-C runtimes to use this instead of rolling the
llvm::FunctionType by hand.
- Killed CodeGenTypes::{ConvertReturnType, DecodeArgumentTypes}.
Add ABIArgInfo class to encapsulate ABI decision of how to lower types
to LLVM.
- Will move to target sometime soon.
llvm-svn: 56047
|
|
|
|
|
|
|
|
| |
- Realized these functions will eventually need access to more data,
moved to CodeGenModule. Eventually they should probably live
together in some other helper class.
llvm-svn: 56039
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
aliases.
- Attributes specific to a definition are only set when the
definition is seen.
- Alias generation is delayed until the end of the module; necessary
since the alias may reference forward.
- Fixes: PR2743, <rdr://6140807&6094512>
- Improves: <rdr://6095112> (added XFAIL)
Also, print module on verification failures.
llvm-svn: 55966
|
|
|
|
|
|
|
|
|
| |
- Add CGCall.h for dealing with ABI issues related to calls.
- Add CGFunctionInfo and CGCallInfo for capturing ABI relevant
information about functions and calls.
- Isolate LLVM parameter attribute handling inside CGCall.cpp
llvm-svn: 55963
|
|
|
|
| |
llvm-svn: 55812
|