| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.
- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!
PR6240.
llvm-svn: 95648
|
| |
|
|
|
|
| |
attributes. Fixes PR6245.
llvm-svn: 95474
|
| |
|
|
|
|
|
|
|
|
|
|
| |
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().
llvm-svn: 95436
|
| |
|
|
|
|
| |
for the reference binding bug that is preventing self-hosting.
llvm-svn: 95223
|
| |
|
|
|
|
| |
references.
llvm-svn: 94964
|
| |
|
|
|
|
| |
union or not from the FieldDecl (through its DeclContext).
llvm-svn: 94798
|
| |
|
|
|
|
| |
halfway towards fixing PR5824.
llvm-svn: 92142
|
| |
|
|
| |
llvm-svn: 92138
|
| |
|
|
| |
llvm-svn: 90778
|
| |
|
|
|
|
|
| |
directly into the sret pointer. This is an optimization in C, but is required
for correctness in C++ for classes with a non-trivial copy constructor.
llvm-svn: 90526
|
| |
|
|
|
|
| |
yet).
llvm-svn: 89835
|
| |
|
|
|
|
|
|
| |
incomplete return types or incomplete argument types.
Handle this by returning the llvm::OpaqueType for those cases, which CodeGenModule::GetOrCreateLLVMFunction knows about, and treats as being an "incomplete function".
llvm-svn: 89736
|
| |
|
|
|
|
| |
definitions, not declarations or calls.
llvm-svn: 88915
|
| |
|
|
|
|
| |
This resolves the layering violation where CodeGen depended on Frontend.
llvm-svn: 86998
|
| |
|
|
| |
llvm-svn: 85278
|
| |
|
|
| |
llvm-svn: 84456
|
| |
|
|
| |
llvm-svn: 83303
|
| |
|
|
| |
llvm-svn: 83271
|
| |
|
|
|
|
|
|
| |
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
|
| |
|
|
|
|
|
|
|
|
|
| |
Several of the existing methods were identical to their respective
specializations, and so have been removed entirely. Several more 'leaf'
optimizations were introduced.
The getAsFoo() methods which imposed extra conditions, like
getAsObjCInterfacePointerType(), have been left in place.
llvm-svn: 82501
|
| |
|
|
|
|
| |
or a non-trivial copy constructor, it should be passed in a pointer. Daniel, plz review.
llvm-svn: 82050
|
| |
|
|
|
|
| |
to use, and allow the ABI implementation to override the calling convention.
llvm-svn: 81593
|
| |
|
|
| |
llvm-svn: 81582
|
| |
|
|
|
|
| |
- Currently unused.
llvm-svn: 81581
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
| |
llvm-svn: 78946
|
| |
|
|
|
|
| |
function's return
llvm-svn: 78541
|
| |
|
|
| |
llvm-svn: 78515
|
| |
|
|
| |
llvm-svn: 77848
|
| |
|
|
| |
llvm-svn: 77722
|
| |
|
|
|
|
| |
Codegen by initializing the return value with its LLVM type's null value.
llvm-svn: 77288
|
| |
|
|
| |
llvm-svn: 75705
|
| |
|
|
|
|
|
| |
Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.
llvm-svn: 74506
|
| |
|
|
|
|
|
|
|
| |
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501
|
| |
|
|
| |
llvm-svn: 74414
|
| |
|
|
|
|
|
|
| |
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.
llvm-svn: 74405
|
| |
|
|
| |
llvm-svn: 73938
|
| |
|
|
| |
llvm-svn: 73702
|
| |
|
|
|
|
| |
always_inline from working.
llvm-svn: 73273
|
| |
|
|
|
|
|
|
|
| |
argument
zero/sign extension logic (consider, e.g. target has only 64 bit registers and thus
i32's should be extended as well).
llvm-svn: 72998
|
| |
|
|
| |
llvm-svn: 72962
|
| |
|
|
| |
llvm-svn: 72961
|
| |
|
|
|
|
|
|
|
|
| |
when generating a coercion for ABI handling purposes.
- This may only manifest itself when building at -O0, but the practical effect
is that other arguments may get clobbered.
- <rdar://problem/6930451> [irgen] ABI coercion clobbers other arguments
llvm-svn: 72932
|
| |
|
|
| |
llvm-svn: 72902
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
thing for non-aggregate types.
- Otherwise we unnecessarily pin values to the stack and currently end up
triggering a backend bug in one case.
- This loose cooperation with LLVM to implement the ABI is pretty ugly.
- <rdar://problem/6918722> [irgen] clang miscompile of many pointer varargs on
x86-64
llvm-svn: 72419
|
| |
|
|
|
|
| |
- PR4242.
llvm-svn: 72268
|
| |
|
|
|
|
| |
This attempts to fix PR4239.
llvm-svn: 72251
|
| |
|
|
| |
llvm-svn: 72210
|
| |
|
|
|
|
| |
support anything but at least we don't crash ;)
llvm-svn: 72147
|
| |
|
|
| |
llvm-svn: 72118
|