|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| | offsets better for thunk refinements.  Cleanups.  WIP.
llvm-svn: 81067 | 
| | 
| 
| 
| 
| 
| | vtables.  Add thunk generation.  WIP.
llvm-svn: 81014 | 
| | 
| 
| 
| | llvm-svn: 79372 | 
| | 
| 
| 
| | llvm-svn: 79199 | 
| | 
| 
| 
| 
| 
| 
| 
| | function in the order according to c++03. ir-gen 
for copy assignment in the trivial case and the first
test case.
llvm-svn: 78938 | 
| | 
| 
| 
| | llvm-svn: 78691 | 
| | 
| 
| 
| | llvm-svn: 78515 | 
| | 
| 
| 
| | llvm-svn: 78402 | 
| | 
| 
| 
| | llvm-svn: 78259 | 
| | 
| 
| 
| | llvm-svn: 77699 | 
| | 
| 
| 
| | llvm-svn: 75705 | 
| | 
| 
| 
| | llvm-svn: 75446 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Track implicit instantiations vs. the not-yet-supported explicit
  specializations
  - Give implicit instantiations of function templates (and member
  functions of class templates) linkonce_odr linkage.
  - Improve name mangling for function template specializations,
  including the template arguments of the instantiation and the return
  type of the function.
Note that our name-mangling is improved, but not correct: we still
don't mangle substitutions, although the manglings we produce can be
demangled.
llvm-svn: 74466 | 
| | 
| 
| 
| 
| 
| | Found by code inspection; I haven't seen this in real-world code.
llvm-svn: 72408 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | to allow us to support generation of deferred ctors/dtors.
It looks like codegen isn't emitting a call to the dtor in 
member-functions.cpp:test2, but when it does, its body should
get emitted.
llvm-svn: 71594 | 
| | 
| 
| 
| 
| 
| | + ctor type or a CXXDestructorDecl + dtor type.
llvm-svn: 70962 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | tentative definitions off to the ASTConsumer at the end of the
translation unit. 
Eliminate CodeGen's internal tracking of tentative definitions, and
instead hook into ASTConsumer::CompleteTentativeDefinition. Also,
tweak the definition-deferal logic for C++, where there are no
tentative definitions.
Fixes <rdar://problem/6808352>, and will make it much easier for
precompiled headers to cope with tentative definitions in the future.
llvm-svn: 69681 | 
| | 
| 
| 
| 
| 
| | by anything yet.
llvm-svn: 69343 | 
| | 
| 
| 
| 
| 
| 
| | - <rdar://problem/6800351> clang not producing correct large struct
   return code for Blocks
llvm-svn: 69337 | 
| | 
| 
| 
| | llvm-svn: 69328 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - PR3980.
 - <rdar://problem/6762287> [irgen] crash when generating tentative
   definition of incomplete structure
 - This also avoids creating common definitions for things which are
   later overwritten.
 - XFAIL'ed external-defs.c, it isn't completing types properly yet.
llvm-svn: 69231 | 
| | 
| 
| 
| | llvm-svn: 69168 | 
| | 
| 
| 
| | llvm-svn: 69070 | 
| | 
| 
| 
| 
| 
| 
| 
| | C99 mode.  This is a regression from an earlier patch of mine.
This also simplifies the linkage enums a bit.
llvm-svn: 69069 | 
| | 
| 
| 
| 
| 
| 
| 
| | pulling some attribute munging stuff into GetLinkageForFunction.
This should fix PR3986
llvm-svn: 69045 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | - Pull out SetCommonAttributes, which handles the things common to
   aliases, methods, functions, and variables.
 - Pull out SetLLVMFunctionAttributesForDefinition, which handles the
   LLVM attributes which we only want to apply to a definition (like
   noinline and alwaysinline).
 - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes
   and specialized).
 - Kill SetFunctionAttributesForDefinition (inlined into sole caller).
 - Inline SetGVDefinitionAttributes into SetMethodAttributes and
   specialize.
 - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes.
This is supposed to be a no functionality change commit, but I may
have made a mistake.
llvm-svn: 69036 | 
| | 
| 
| 
| 
| 
| | - No functionality change.
llvm-svn: 69035 | 
| | 
| 
| 
| 
| 
| 
| | disambiguate it.
 - No functionality change.
llvm-svn: 69034 | 
| | 
| 
| 
| | llvm-svn: 69028 | 
| | 
| 
| 
| | llvm-svn: 69027 | 
| | 
| 
| 
| 
| 
| | implies an all-zero bit pattern.
llvm-svn: 68994 | 
| | 
| 
| 
| 
| 
| | when the destination has a reference type. (No functionality change yet)
llvm-svn: 68593 | 
| | 
| 
| 
| | llvm-svn: 68300 | 
| | 
| 
| 
| 
| 
| | Patch by Jean-Daniel Dupas. Thanks!
llvm-svn: 68203 | 
| | 
| 
| 
| | llvm-svn: 68176 | 
| | 
| 
| 
| | llvm-svn: 68170 | 
| | 
| 
| 
| 
| 
| 
| 
| | that occurs when
attribute(used) and asm renaming are used together.
llvm-svn: 68155 | 
| | 
| 
| 
| 
| 
| | The llvm optimizer and code generator are not yet ready to support optimized code debugging.
llvm-svn: 67876 | 
| | 
| 
| 
| 
| 
| 
| | CodeGenModule.  Once there, add a new NoCommon option to
it and implement -fno-common.
llvm-svn: 67735 | 
| | 
| 
| 
| 
| 
| 
| 
| | functionality, fixing a crash on the attached testcase.  Eliminate the
BuiltinFunctions cache, as it can contain dangling pointers.  This fixes
a bunch of valgrind errors on test/CodeGen/builtins.c
llvm-svn: 67484 | 
| | 
| 
| 
| 
| 
| | the end of the module.
llvm-svn: 67482 | 
| | 
| 
| 
| 
| 
| 
| 
| | 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 |