summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* fix codegen support for alloc_size attribute for static C++ methodsNuno Lopes2012-05-251-2/+4
| | | | | | add test case for C++ codegen llvm-svn: 157500
* add CodeGen support for the alloc_size attributeNuno Lopes2012-05-251-0/+17
| | | | llvm-svn: 157483
* Replace PTX back-end with NVPTX back-end in all places where Clang caresJustin Holewinski2012-05-241-18/+18
| | | | | | NV_CONTRIB llvm-svn: 157403
* If the first argument of __builtin_object_size can be folded to a constantRichard Smith2012-05-231-0/+4
| | | | | | | | pointer, but such folding encounters side-effects, ignore the side-effects rather than performing them at runtime: CodeGen generates wrong code for __builtin_object_size in that case. llvm-svn: 157310
* Emit C++11 enum class information if it exists.Eric Christopher2012-05-231-1/+4
| | | | | | Part of rdar://11496790 llvm-svn: 157304
* wire -fbounds-checking to the new LLVM bounds checking passNuno Lopes2012-05-223-2/+15
| | | | llvm-svn: 157262
* revert the usage of the objectsize intrinsic with 3 parameters (to match ↵Nuno Lopes2012-05-222-6/+2
| | | | | | LLVM r157255) llvm-svn: 157256
* Revert r115805. An array type is required to have a range type,Eric Christopher2012-05-211-18/+14
| | | | | | | | | | however, the range can be unknown for the upper bound. Testcase to follow. Part of rdar://11457152 llvm-svn: 157212
* Teach Clang about the NVPTX backend.Peter Collingbourne2012-05-201-0/+2
| | | | llvm-svn: 157173
* CUDA: add CodeGen support for global variable address spaces.Peter Collingbourne2012-05-202-3/+27
| | | | | | | | | Because in CUDA types do not have associated address spaces, globals are declared in their "native" address space, and accessed by bitcasting the pointer to address space 0. This relies on address space 0 being a unified address space. llvm-svn: 157167
* Zap a bogus assert for delegating constructors. PR12890, part 2.Eli Friedman2012-05-201-1/+0
| | | | | | I'm pretty sure we are in fact doing the right thing here, but someone who knows the standard better should double-check that we are in fact supposed to zero out the member in the given testcase. llvm-svn: 157138
* Update API usage for llvm DIBuilder changes for rvalue referenceEric Christopher2012-05-191-4/+6
| | | | | | | | types and ensure we are actually creating the type. rdar://11479676 llvm-svn: 157095
* Remove unnecessary temporary.Eric Christopher2012-05-161-3/+1
| | | | llvm-svn: 156953
* Fix code generation of variables reference expressions when mixingDouglas Gregor2012-05-161-1/+1
| | | | | | | blocks and lambdas, based heavily on a patch from Meador Inge. Fixes PR12746 / <rdar://problem/11465120>. llvm-svn: 156925
* Implement IRGen for C++11's "T{1, 2, 3}", where T is an aggregate and theRichard Smith2012-05-142-7/+15
| | | | | | expression is treated as an lvalue. llvm-svn: 156781
* Add support for __attribute__((hot)) and __attribute__((cold)).Benjamin Kramer2012-05-121-0/+4
| | | | | | | | Currently cold functions are marked with the "optsize" attribute in CodeGen so they are always optimized for size. The hot attribute is just ignored, LLVM doesn't have a way to express hotness at the moment. llvm-svn: 156723
* Coerce byval aggregate arguments to integers whose size matches the integerAkira Hatanaka2012-05-111-35/+44
| | | | | | | register size of the target architecture. llvm-svn: 156650
* Fix handling of vector return types.Akira Hatanaka2012-05-111-1/+1
| | | | | | | A vector should be returned via the hidden pointer argument except if its size is equal to or smaller than 16-bytes and the target ABI is N32 or N64. llvm-svn: 156642
* Hexagon V5 intrinsics support in clang.Sirish Pande2012-05-111-155/+751
| | | | llvm-svn: 156630
* Implement PPC64TargetCodeGenInfo.Roman Divacky2012-05-091-0/+60
| | | | llvm-svn: 156491
* update calls to objectsize intrinsic to match LLVM r156473Nuno Lopes2012-05-092-4/+6
| | | | | | add a test for -fbounds-checking code generation llvm-svn: 156474
* add -fbounds-checking option.Nuno Lopes2012-05-083-1/+7
| | | | | | | | When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend. OK'ed by Chad; thanks for the review. llvm-svn: 156431
* The address of a vla is actually complex and requires a dereference.Eric Christopher2012-05-081-1/+18
| | | | | | Part of rdar://11352000 llvm-svn: 156407
* Whitespace.Eric Christopher2012-05-081-1/+0
| | | | llvm-svn: 156406
* remove code to add bound checks for simple array accesses, since those are ↵Nuno Lopes2012-05-071-25/+0
| | | | | | | | already covered by the check with the objectsize builtin remove the comparison of objectsize with -1. since it's an unsigned comparison, it will always succeed if objectsize returns -1, which is enough to have the check removed llvm-svn: 156311
* Convert AVX non-temporal store builtins to LLVM-native IR. This was ↵Craig Topper2012-05-071-0/+3
| | | | | | previously done for SSE builtins. llvm-svn: 156296
* Make BuiltinType::getName return a StringRef and introduce ↵Argyrios Kyrtzidis2012-05-051-1/+1
| | | | | | | | | | | | | BuiltinType::getNameAsCString to get a const char* if necessary. This avoids unnecessary conversions when we want to use the result of getName as a StringRef. Part of rdar://10796159 llvm-svn: 156227
* This patch adds a new Clang compiler flag "-gline-tables-only".Alexey Samsonov2012-05-045-37/+77
| | | | | | | | | | | | | | It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only. 2) .debug_str contains only function names. 3) No debug data for types/namespaces/variables is emitted. 4) The data in .debug_line is enough to produce valid stack traces with function names and line numbers. Reviewed by Eric Christopher. llvm-svn: 156160
* During block layout, after padding up to the max field alignment,John McCall2012-05-011-1/+2
| | | | | | | the alignment might actually exceed the max field alignment; don't assert in this case. llvm-svn: 155937
* Spacing.Chad Rosier2012-05-011-1/+1
| | | | llvm-svn: 155931
* Push variable declaration into nested scope (the only place where it is ↵Ted Kremenek2012-05-011-3/+1
| | | | | | used). Found by static analyzer. llvm-svn: 155922
* Add support for laying out vtordisps according to our currentJohn McCall2012-05-011-3/+1
| | | | | | | working knowledge of the Microsoft ABI. Based on a patch by Dmitry Sokolov. llvm-svn: 155905
* Abstract the emission of global destructors into ABI-specific codeJohn McCall2012-05-017-67/+96
| | | | | | | | | | | | | and only consider using __cxa_atexit in the Itanium logic. The default logic is to use atexit(). Emit "guarded" initializers in Microsoft mode unconditionally. This is definitely not correct, but it's closer to correct than just not emitting the initializer. Based on a patch by Timur Iskhodzhanov! llvm-svn: 155894
* Refactor the C++ ABI code a little bit to take advantage ofJohn McCall2012-05-015-165/+190
| | | | | | | | what I'm going to treat as basically universal properties of array-cookie code. Implement MS array cookies on top of that. Based on a patch by Timur Iskhodzhanov! llvm-svn: 155886
* Remove the ref/value inconsistency in filter_decl_iterator.David Blaikie2012-04-3013-58/+61
| | | | | | | | | | | | | filter_decl_iterator had a weird mismatch where both op* and op-> returned T* making it difficult to generalize this filtering behavior into a reusable library of any kind. This change errs on the side of value, making op-> return T* and op* return T&. (reviewed by Richard Smith) llvm-svn: 155808
* Use enum to set debug info size generated by ClangAlexey Samsonov2012-04-276-9/+12
| | | | llvm-svn: 155697
* Add a missing check in CodeGen of packed classes with vtables. ↵Eli Friedman2012-04-271-1/+7
| | | | | | <rdar://problem/11324125>. llvm-svn: 155689
* objective-c IRGen. Fixes a getter synthesis bugFariborz Jahanian2012-04-261-1/+1
| | | | | | | where getter type is super class of its property type, resulting in an assert. // rdar://11323676 llvm-svn: 155663
* Fix a bug with block layout when the block contains somethingJohn McCall2012-04-261-5/+8
| | | | | | | | | | | | more aligned than the block header but also contains something smaller than the block-header alignment but not exactly half the difference between the large alignment and the header alignment. Got that? I'm really not sure what I was thinking with the buggy computation here, but the fix is pretty obvious. llvm-svn: 155662
* Add a flag to the image info section indicating that the program is compiled forBill Wendling2012-04-241-1/+10
| | | | | | a simulator. llvm-svn: 155436
* enable TBAA when -fthread-sanitizer is given, even with -O0 or ↵Kostya Serebryany2012-04-243-4/+15
| | | | | | -relaxed-aliasing llvm-svn: 155430
* Forward declarations should take a context. This helps the debuggerEric Christopher2012-04-231-7/+6
| | | | | | | | | find forward declarations in the context that the actual definition will occur. rdar://11291658 llvm-svn: 155381
* Revert r155363, due to the underlying patches in LLVM causing regressionChandler Carruth2012-04-231-749/+155
| | | | | | test suite failures. llvm-svn: 155371
* Hexagon V5 (floating point) support in cfe.Sirish Pande2012-04-231-155/+749
| | | | llvm-svn: 155363
* PR12571: Objects of type clang::ConstantArrayType aren't always emitted withRichard Smith2012-04-221-10/+26
| | | | | | | type llvm::ArrayType -- sometimes we emit them as packed structs. Don't assert if such a global array has an element type with a non-trivial destructor. llvm-svn: 155305
* Fix bug 12574 - Avoid infinite recursion in constructors and destructors ↵Timur Iskhodzhanov2012-04-201-2/+3
| | | | | | when using Microsoft C++ ABI llvm-svn: 155189
* Implements boxed expressions for Objective-C. <rdar://problem/10194391>Patrick Beard2012-04-193-22/+22
| | | | llvm-svn: 155082
* Revert some Hexagon builtin commits to match reverts done to LLVM inChandler Carruth2012-04-181-749/+155
| | | | | | | | | | | | | | | | | | | r155047. See the LLVM log for the primary motivation: http://llvm.org/viewvc/llvm-project?rev=155047&view=rev Primary commit r154828: - Several issues were raised in review, and fixed in subsequent commits. - Follow-up commits also reverted, and which should be folded into the original before reposting: - r154837: Re-add the 'undef BUILTIN' thing to fix the build. - r154928: Fix build warnings, re-add (and correct) header and license - r154937: Typo fix. Please resubmit this patch with the relevant LLVM resubmission. llvm-svn: 155048
* Fix case where the alignment is overaligned, per Eli's suggestion.Chad Rosier2012-04-171-1/+4
| | | | | | rdar://11220251 llvm-svn: 154893
* Make sure EmitMoveFromReturnSlot is passing the correct alignment toChad Rosier2012-04-171-1/+1
| | | | | | | EmitFinalDestCopy (and thus pass EmitAggregateCopy the correct alignment). rdar://11220251 llvm-svn: 154883
OpenPOWER on IntegriCloud