| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 54593
|
|
|
|
| |
llvm-svn: 54548
|
|
|
|
|
|
|
|
|
|
| |
ModuleBuilder now performs llvmgen in HandleTranslationUnit.
This patch follows from the discussion on the following thread on cfe-commits:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080804/006849.html
llvm-svn: 54486
|
|
|
|
|
|
| |
- PR2643
llvm-svn: 54397
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
type.
- This generates somewhat less optimal code than before but this is
not hard to rectify once stable (at the cost of slightly more
complex code).
- This currently always uses little-endian ordering of the bitfield.
- This breaks the CodeGen/bitfield.c test because it was grepping for
hard-coded assembly instructions. Will fix once a better test case
is constructed (hard to do without execution).
- This fixes SingleSource/UnitTests/2006-01-23-InitializedBitField.c
and Regression/C/PR1386.c from the test suite.
- <rdar://problem/6085090>, <rdar://problem/6094169>
llvm-svn: 54395
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changed EmitSub to work on all cases (arithmetic, ptr - int, ptr -
ptr) so that implementation matches that of other operators.
- Modify EmitCompoundAssign to compute and perform the appropriate
casts of left, right, and result types for the assorted pointer
arithmetic cases.
- Fix EmitSub (ptr - int) case to negate the rhs *after*
extension. This is critical when the rhs is unsigned (and needs
extension).
- This fixes cfrac.
- <rdr://6115726>
llvm-svn: 54392
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scimark2 on Darwin.
- Added Sema support for asm-label on variables, which I forgot before.
- Update CodeGen to use GlobalDeclMap to determine if static Decls
require emission (instead of LLVM module name lookup). Important
since the Decl name and the LLVM module name can differ.
- <rdar://problem/6116729>
llvm-svn: 54388
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
having multiple bindings from all the possible decls which
conceptually map to the same global).
- This eliminates CodeGen depending on the LLVM module for name
lookup.
- This also eliminates the need for ReplaceMapValuesWith (hurrah).
- This handles lookups for FunctionDecls correctly in the presence of
aliases, this was previously broken.
- WIP: Can still clean up & unify variable and function emission.
llvm-svn: 54382
|
|
|
|
| |
llvm-svn: 54366
|
|
|
|
|
|
| |
ASTConsumer layers on top of LLVMCodeGen (another existing ASTConsumer) to emit bitcode files to disk. This layering takes this logic out of clang.cpp and puts it directly into the ASTConsumer interface. The benefit is that now --emit-llvm works with both serialized ASTs and regular source files.
llvm-svn: 54364
|
|
|
|
|
|
| |
- <rdar://problem/6122967>
llvm-svn: 54338
|
|
|
|
| |
llvm-svn: 54322
|
|
|
|
|
|
|
|
|
|
| |
- Follows emission scheme used by llvm-gcc, i.e. invent an id for
each label whose address is taken and replace each indirect goto by
a switch to each possible target.
- Currently we emit a switch for each indirect goto instead of
merging them as llvm-gcc does.
llvm-svn: 54318
|
|
|
|
|
|
|
|
|
|
| |
move getAsArrayType into ASTContext instead of being a method on type.
This is required because getAsArrayType(const AT), where AT is a typedef
for "int[10]" needs to return ArrayType(const int, 10).
Fixing this greatly simplifies getArrayDecayedType, which is a good sign.
llvm-svn: 54317
|
|
|
|
|
|
|
|
|
| |
- There is an miscompilation issue remaining due to a poor
interaction between the delayed emission of static functions and
the emission of constructors, but that already existed prior to
this change.
llvm-svn: 54258
|
|
|
|
|
|
| |
http://llvm.org/viewvc/llvm-project?view=rev&revision=54107
llvm-svn: 54242
|
|
|
|
|
|
| |
different address spaces) for llvm r54195.
llvm-svn: 54241
|
|
|
|
|
|
| |
<rdar://problem/6113085>
llvm-svn: 54237
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of mapping the decl to a bitcast of the global to the correct
type.
- GetAddrOf{Function,GlobalVar} introduce the bitcast on every use now.
- This solves a problem where a dangling pointer could be introduced
by the RAUW done when replacing a forward or tentative
definition. See testcase for more details.
- Fixes <rdar://problem/6108358>
llvm-svn: 54211
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- No (intended) functionality change.
- Primary purpose is to clearly separate (lazy) construction of
globals that are a forward declaration or tentative definition from
those that are the final definition.
- Lazy construction is now encapsulated in
GetAddrOf{Function,GlobalVar} while final definitions are
constructed in EmitGlobal{Function,Var}Definition.
- External interface for dealing with globals is now limited to
EmitGlobal and GetAddrOf{Function,GlobalVar}.
- Also updated helper functions dealing with statics, annotations,
and ctors to be private.
llvm-svn: 54179
|
|
|
|
|
|
|
|
| |
- Killed useless CodeGenModule::EmitGlobalVarDeclarator, instead just
recurse on any ScopedDecl.
- Fix for <rdar://problem/6093838>
llvm-svn: 54162
|
|
|
|
|
|
| |
function
llvm-svn: 54108
|
|
|
|
| |
llvm-svn: 54107
|
|
|
|
|
|
| |
ASTContext::getCanonicalType instead (PR2189)
llvm-svn: 54105
|
|
|
|
| |
llvm-svn: 54100
|
|
|
|
| |
llvm-svn: 54099
|
|
|
|
|
|
| |
are important part of control flow structures.
llvm-svn: 54078
|
|
|
|
| |
llvm-svn: 54049
|
|
|
|
| |
llvm-svn: 54048
|
|
|
|
| |
llvm-svn: 54047
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fix multiple issues with the way case ranges were emitted, see test
cases details about the specific issues.
- The root issue was not being careful about how basic blocks were
emitted which led to them being chained together incorrectly,
resulting in improper control flow.
- Fixes <rdar://problem/6098585>
llvm-svn: 54006
|
|
|
|
|
|
|
|
|
|
| |
- Also cleaned up emission slightly
- Inspection of the code revealed several other bugs, however. Case
ranges are not properly wired and can result in switch cases being
dropped or even infinite loops. See: <rdar://problem/6098585>
Completes: <rdar://problem/6094119>
llvm-svn: 53975
|
|
|
|
| |
llvm-svn: 53948
|
|
|
|
|
|
|
|
|
|
|
| |
int foo(void) {
float x[2];
return x;
}
rdar://6093986
llvm-svn: 53946
|
|
|
|
| |
llvm-svn: 53928
|
|
|
|
| |
llvm-svn: 53899
|
|
|
|
|
|
|
| |
This subsumes Nico Weber's patch and implements bzero in terms
of llvm.memset to match llvm-gcc.
llvm-svn: 53888
|
|
|
|
|
|
|
| |
This closes <rdar://problem/6080720>, support for __builtin_constant_p
has been filed separately.
llvm-svn: 53885
|
|
|
|
| |
llvm-svn: 53878
|
|
|
|
|
|
| |
simplifying code along the way and fixing a problem and memory leak or two.
llvm-svn: 53876
|
|
|
|
| |
llvm-svn: 53866
|
|
|
|
|
|
|
| |
various objc lists over to it. First up, the protocol list
on ObjCInterfaceDecl.
llvm-svn: 53856
|
|
|
|
|
|
| |
+ test case
llvm-svn: 53851
|
|
|
|
|
|
|
| |
it goes and makes std::strings out of them, which is not
defined.
llvm-svn: 53843
|
|
|
|
| |
llvm-svn: 53747
|
|
|
|
|
|
| |
<rdar://problem/6078606>
llvm-svn: 53737
|
|
|
|
| |
llvm-svn: 53552
|
|
|
|
| |
llvm-svn: 53329
|
|
|
|
|
|
| |
This was broken when the GenerateCode function was splitted to use GenerateFunction.
llvm-svn: 53136
|
|
|
|
| |
llvm-svn: 53121
|