aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-06-28Add stack protector support to clang. This generates the 'ssp' and 'sspreq'Bill Wendling
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26OpenCL 1.0 Support: fix a bug with lvalue swizzlesNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Implement enough of the 'auto' keyword so we can claim to support N2546.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74307 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26typoDevang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74305 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Revrt PR4228 fix for now.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26Simplify, and fix a possible crash (never happens however, because we don't everDaniel Dunbar
take this path with non-builtin floating point types). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74303 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24Add a DecltypeType type.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74099 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23Patch fixes an obscure bug when 'used' attribute is applied toFariborz Jahanian
variables in ObjC's Next runtime mode. Next runtime also implicitly applies 'used' attribute on some of its meta-data. This results in two 'llvm.used' arrays to be generated, and one of them is renamed to 'llvm.used1'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74008 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-23fix PR4423.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73938 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-20Parsing and AST support for using declarations, from John Thompson!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17Move CXXMethodDecl::OutOfLineDefinition into Decl::OutOfLine.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73651 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17First step toward fixing <rdar://problem/6613046> refactor clang objc type ↵Steve Naroff
representation. Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType). This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73649 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17Update clang for the add ->add/fadd split. Likewise for sub and mul.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73604 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16It is possible that main input file does not have any symbol with debug ↵Devang Patel
info. To handle this edge case, always create main compile unit first. This fixes PR 4228. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73520 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16Handle temporaries in default arguments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73462 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15"GCC emits an __objc_class_name_{classname} symbol for every class, and a ↵Chris Lattner
corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly." Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73364 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14PR4390: Make sure to handle anonymous unions correctly while building Eli Friedman
static intializers for structs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14Sink the BuiltinInfo object from ASTContext into theChris Lattner
preprocessor and initialize it early in clang-cc. This ensures that __has_builtin works in all modes, not just when ASTContext is around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73319 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14move the various builtins stuff from libast to libbasic. ThisChris Lattner
fixes a layering violation in lib/Basic/Targets.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14move GetBuiltinType from Builtin::Context to ASTContext.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73316 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Simplify mangleFunctionDecl by unnesting a crazy condition. This fixesChris Lattner
the check for extern "c" system headers, which should prevent functiondecls from being mangled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73311 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Fix the calling convention for structs/unions containing SSE vectors on Eli Friedman
x86-32. This is slightly messy, but I think it's consistent with gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73306 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Fix PR4372, another case where non-prototyped functions can prevent Chris Lattner
always_inline from working. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73273 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-11Don't assert when generating code with static_asserts.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-10Support complex properties, ivars and message expressions.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73158 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07Remove a few more vector builtins.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-07Now that LLVM CodeGen can handle the generic variations a bit better, Eli Friedman
get rid of a few more clang vector builtins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06PR4339: make sure to properly extend/trunc the index of a vector element Eli Friedman
insert/extract; the relevant instructions are defined to take only an i32. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73005 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Add new ABIArgInfo kind: Extend. This allows target to implement its own ↵Anton Korobeynikov
argument zero/sign extension logic (consider, e.g. target has only 64 bit registers and thus i32's should be extended as well). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72998 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-06Get rid of a bunch of dead builtins.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72996 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05As an optimization, we maintain a cache of generatedMike Stump
___Block_byref_id_object_dispose and ___Block_byref_id_object_copy functions so that we can simply reuse instead of creating a new one. Additionally, add an assert to ensure no one yet tries to align a __block variable beyond the alignment of a pointer as the codegen is incomplete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72974 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05weak_import should not make definitions have weak linkage.Daniel Dunbar
- <rdar://problem/6948703> clang treats weak_import like weak git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72967 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Update cmake scriptAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Factor out TargetABIInfo stuff into separate file. No functionality change.Anton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72962 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Set function Attribute::NoImplicitFloat appropriately.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05ABI handling: Fix nasty thinko where IRgen could generate an out-of-bounds readDaniel Dunbar
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72932 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Fix -Asserts build warnings.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Set function attribute llvm::Attribute::NoRedZone appropriately.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72902 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Make ReplaceUsesOfNonProtoTypeWithRealFunction verify that a call is *to* theChris Lattner
function of interest, not an operand of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Use PushConditionalTempDestruction/PopConditionalTempDestruction for the ↵Anders Carlsson
ternary operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72842 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Use conditional temp destruction for || and &&.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72838 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Make PushCXXTemporary and PopCXXTemporary handle conditional temporaries.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72837 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Add PushConditionalTempDestruction/PopConditionalTempDestruction.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72835 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Make sure to push a cleanup block.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72831 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Cleanup/Refactoring of ivar collection. No change in functionality.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72827 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Fix cmake builds.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72814 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03PR4316: Fix IRGen for cast-to-union extension.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72803 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03More temporary work.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Store more information about live temporaries. No functionality change for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72793 91177308-0d34-0410-b5e6-96231b3b80d8