summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Modify some deleted function methods to better reflect reality:Alexis Hunt2011-05-062-3/+3
| | | | | | | | | | | | | | | | | | | | - New isDefined() function checks for deletedness - isThisDeclarationADefinition checks for deletedness - New doesThisDeclarationHaveABody() does what isThisDeclarationADefinition() used to do - The IsDeleted bit is not propagated across redeclarations - isDeleted() now checks the canoncial declaration - New isDeletedAsWritten() does what it says on the tin. - isUserProvided() now correct (thanks Richard!) This fixes the bug that we weren't catching void foo() = delete; void foo() {} as being a redefinition. llvm-svn: 131013
* Don't emit nsw flags for vector operations; there's basically no benefit, ↵Eli Friedman2011-05-061-7/+4
| | | | | | and a lot of downside (like PR9850, which is about clang's xmmintrin.h making an unexpected transformation on an expression involving _mm_add_epi32). llvm-svn: 131000
* Add an implementation of thunks for varargs methods. The implementation is ↵Eli Friedman2011-05-063-46/+153
| | | | | | a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 . llvm-svn: 130993
* Reset the emitted initializers.Axel Naumann2011-05-061-0/+2
| | | | | | This enables incremental codegen, where the initializer array can be removed from the module, such that only new initializers will be emitted and run. llvm-svn: 130986
* type of last arg of objc_assign_ivar is ptrdiff_t. Fariborz Jahanian2011-05-051-1/+5
| | | | | | // rdar://9362887 llvm-svn: 130956
* Implement support for C++0x alias templates.Richard Smith2011-05-052-0/+2
| | | | llvm-svn: 130953
* Do not drop uint128 on the floor.Devang Patel2011-05-051-0/+2
| | | | llvm-svn: 130929
* Preserve the full name of the file, so that '-c -o foo.pic.o' producesNick Lewycky2011-05-052-8/+8
| | | | | | foo.pic.gcno instead of foo.gcno. llvm-svn: 130899
* Pack ivar offsets together.Bill Wendling2011-05-041-1/+1
| | | | | | | | | | Ivar offsets for synthesized ivars are wrong, which could end up with a large number of dirty pages because of ivar fixups at runtime. When we pack all of the synthesized ivars into the same section, it limits the number of dirty pages created. Place them in the "__DATA,__objc_ivar" section. <rdar://problem/9374905> llvm-svn: 130870
* Record where the GCOV data files should be placed.Nick Lewycky2011-05-042-0/+24
| | | | llvm-svn: 130866
* Simplification noticed by Chris.Bill Wendling2011-05-041-3/+2
| | | | llvm-svn: 130864
* Convert the non-temporal store builtins to LLVM-native IR.Bill Wendling2011-05-041-0/+17
| | | | llvm-svn: 130830
* Ensure that destructors are properly inovked when an exception leavesAlexis Hunt2011-05-031-1/+27
| | | | | | | | | | the body of a delegating constructor call. This means that the delegating constructor implementation should be complete and correct, though there are some rough edges (diagnostic quality with the cycle detection and using a deleted destructor). llvm-svn: 130803
* Finish off rules for z-length bitfields in ms_structFariborz Jahanian2011-05-033-8/+4
| | | | | | structs. // rdar://8823265 llvm-svn: 130783
* Fix delegating constructors stylistic issues.Alexis Hunt2011-05-032-12/+21
| | | | | | Material bugfixes to come this afternoon. llvm-svn: 130782
* Function with internal linkage name do not have mangled name.Devang Patel2011-05-021-2/+1
| | | | llvm-svn: 130736
* Do not try to get mangled name of block helpers. Apply a stopgap measure to ↵Devang Patel2011-05-021-1/+3
| | | | | | fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash. llvm-svn: 130734
* Emit debug info for __destroy_helper_block_ and __copy_helper_block.Devang Patel2011-05-021-0/+8
| | | | llvm-svn: 130719
* Skip extra copy from aggregate where it isn't necessary; ↵Eli Friedman2011-05-022-4/+18
| | | | | | rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0. llvm-svn: 130717
* Switch CallArgList from an std::pair to a new CallArg struct (which will ↵Eli Friedman2011-05-023-14/+21
| | | | | | eventually gain more members). Working towards modifying call emission to avoid unnecessary copies. llvm-svn: 130700
* Simplify code a bit by using CallArgList::add. No intended functionality ↵Eli Friedman2011-05-028-77/+55
| | | | | | change. llvm-svn: 130699
* More rule enforcement of zero bitfields for ms_struct.Fariborz Jahanian2011-05-023-4/+8
| | | | llvm-svn: 130696
* Remove unused variable spotted by GCC.Nick Lewycky2011-05-021-2/+1
| | | | | | | | | Devang, can we remove this call entirely? If I try that, "make check" passes but the call has a side-effect of ensuring that the block's context exists in the debug info. getContextDescriptor() is used in a void context for that side- effect elsewhere in this file. Please take a look! llvm-svn: 130679
* Remove dead variable, flagged by gcc's -Wunused-but-set-variable.Nick Lewycky2011-05-021-2/+0
| | | | llvm-svn: 130674
* Remove dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky2011-05-021-1/+0
| | | | | | functionality change. llvm-svn: 130673
* Remove a dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky2011-05-021-2/+0
| | | | | | functionality change. llvm-svn: 130672
* Fully implement delegating constructors!Alexis Hunt2011-05-013-4/+39
| | | | | | | | | | As far as I know, this implementation is complete but might be missing a few optimizations. Exceptions and virtual bases are handled correctly. Because I'm an optimist, the web page has appropriately been updated. If I'm wrong, feel free to downgrade its support categories. llvm-svn: 130642
* Implement -fno-dwarf2-cfi-asm.Rafael Espindola2011-04-301-0/+2
| | | | llvm-svn: 130616
* Tie constructor defintion with its declaration using AT_specification.Devang Patel2011-04-291-4/+9
| | | | llvm-svn: 130561
* Add -Oz option and use it to set the inline threshold to 25.Bob Wilson2011-04-291-1/+3
| | | | | | Radar 9333566. Patch by Chad Rosier! llvm-svn: 130554
* removes a meaningless comment.Fariborz Jahanian2011-04-291-3/+1
| | | | llvm-svn: 130550
* block variables on lhs need be ir-gen'ed after theFariborz Jahanian2011-04-291-1/+18
| | | | | | | | rhs when its 'forwarding' pointer may be modified in rhs evaluation as result of call to Block_copy. // rdar://9309454 llvm-svn: 130545
* Don't crash if the AST doesn't have a sensible ObjC id type.David Chisnall2011-04-291-4/+6
| | | | llvm-svn: 130500
* Fixes debug info generation problem for ms_struct structs.Fariborz Jahanian2011-04-281-1/+14
| | | | | | // rdar://8823265 llvm-svn: 130458
* Cut down unnecessary zero'ing when value-initializing arrays of C++ objects.Argyrios Kyrtzidis2011-04-282-3/+13
| | | | | | | -C++ objects with user-declared constructor don't need zero'ing. -We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again. llvm-svn: 130453
* ms_struct patch for initialization and field access irgen.Fariborz Jahanian2011-04-281-1/+15
| | | | | | // rdar://8823265 - wip. llvm-svn: 130451
* Raise ARM byval minimum size from 32 to 64, addressing a performanceStuart Hastings2011-04-281-1/+1
| | | | | | regression in mason. rdar://problem/7662569 llvm-svn: 130444
* Get the base element type even in multidimensional arrays.Argyrios Kyrtzidis2011-04-281-1/+2
| | | | llvm-svn: 130427
* Replace unitary array with scalar. rdar://problem/7662569Stuart Hastings2011-04-281-3/+3
| | | | llvm-svn: 130423
* When value-initializing the elements of an array not not included in the ↵Argyrios Kyrtzidis2011-04-281-1/+9
| | | | | | | | | | initializer make sure that a non-trivial C++ constructor gets called. Fixes rdar://9347552 & http://llvm.org/PR9801 llvm-svn: 130421
* Replace SmallVector with an array, as suggested by Frits van Bommel. ↵Stuart Hastings2011-04-281-13/+6
| | | | | | rdar://problem/7662569 llvm-svn: 130417
* When block-capturing a variable with a non-trivial destructor,John McCall2011-04-281-0/+1
| | | | | | | | | | make sure to mark the destructor. This normally isn't required, because the destructor should have been marked as part of the declaration of the local, but it's necessary when the variable is a parameter because it's the call sites that are responsible for those destructors. llvm-svn: 130372
* Parsing/AST support for Structured Exception HandlingJohn Wiegley2011-04-281-0/+4
| | | | | | | | Patch authored by Sohail Somani. Provide parsing and AST support for Windows structured exception handling. llvm-svn: 130366
* Implementation of Embarcadero array type traitsJohn Wiegley2011-04-281-0/+4
| | | | | | | | | | Patch authored by John Wiegley. These are array type traits used for parsing code that employs certain features of the Embarcadero C++ compiler: __array_rank(T) and __array_extent(T, Dim). llvm-svn: 130351
* Re-enable byval for ARM in clang. rdar://problem/7662569Stuart Hastings2011-04-271-11/+22
| | | | llvm-svn: 130312
* Some refactoring of my ms_struct patch.Fariborz Jahanian2011-04-271-7/+2
| | | | | | // rdar://8823265 related. llvm-svn: 130311
* When compiling with -fno-threadsafe-statics, guard variables for globals ↵Anders Carlsson2011-04-271-5/+13
| | | | | | with internal linkage don't have to be i64, i8 works just fine! llvm-svn: 130286
* With ms_struct attribut, Zero-length bitfields following Fariborz Jahanian2011-04-261-4/+42
| | | | | | non-bitfield members are ignore. // rdar://8823265 wip llvm-svn: 130257
* We need pointer size in bits here.Devang Patel2011-04-261-1/+1
| | | | llvm-svn: 130244
* Make yet another placeholder type, this one marking that an expression is a ↵John McCall2011-04-263-7/+8
| | | | | | | | | | | bound member function, i.e. something of the form 'x.f' where 'f' is a non-static member function. Diagnose this in the general case. Some of the new diagnostics are probably worse than the old ones, but we now get this right much more universally, and there's certainly room for improvement in the diagnostics. llvm-svn: 130239
OpenPOWER on IntegriCloud