summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* [ms-inline asm] Add support for clobbers in CodeGen.Chad Rosier2012-08-151-1/+23
| | | | | | | This is a reapplication of r161914 now that the scoping issue has been resolved in r161966. llvm-svn: 161967
* Revert this to try to bring the i386 bots back.Eric Christopher2012-08-151-23/+1
| | | | llvm-svn: 161931
* [ms-inline asm] Add support for clobbers in CodeGen.Chad Rosier2012-08-151-1/+23
| | | | llvm-svn: 161914
* irgen: inline code for several of complex builtinFariborz Jahanian2012-08-141-0/+29
| | | | | | calls. // rdar://8315199 llvm-svn: 161891
* Avoid using i64 types for vld1q_lane/vst1q_lane intrinsics.Bob Wilson2012-08-141-4/+36
| | | | | | | | | The backend has to legalize i64 types by splitting them into two 32-bit pieces, which leads to poor quality code. If we produce code for these intrinsics that uses one-element vector types, which can live in Neon vector registers without getting split up, then the generated code is much better. Radar 11998303. llvm-svn: 161879
* ARM: enable struct byval for AAPCS-VFP.Manman Ren2012-08-131-7/+4
| | | | | | rdar://9877866 llvm-svn: 161790
* Factor out computation of whether a typeid's expression is potentiallyRichard Smith2012-08-131-9/+3
| | | | | | evaluated into a CXXTypeid member function. No functionality change. llvm-svn: 161779
* This is always going to be true so the cast isn't necessary.Eric Christopher2012-08-131-5/+3
| | | | llvm-svn: 161744
* Add comments for turning on byvalManman Ren2012-08-101-0/+2
| | | | llvm-svn: 161702
* Don't emit an invoke whose normal destination is a landingpad. Fixes testEli Friedman2012-08-101-19/+2
| | | | | | regression on test/CodeGenObjC/2008-10-3-EhValue.m on non-Darwin targets. llvm-svn: 161700
* ARM: enable struct byval for AAPCS.Manman Ren2012-08-101-3/+1
| | | | | | | rdar://9877866 PR://13350 llvm-svn: 161694
* Decrementing std::string::end is not portable, use array access instead.Joerg Sonnenberger2012-08-101-1/+1
| | | | llvm-svn: 161659
* [ms-inline asm] Use the new Inline Asm Non-Standard Dialect attribute.Chad Rosier2012-08-101-0/+1
| | | | llvm-svn: 161642
* Fix AAPCS ABI. I can't actually test this, but it restores the behavior ↵Eli Friedman2012-08-091-9/+12
| | | | | | from before r159168. PR13562. llvm-svn: 161554
* clang support for Bitrig (an OpenBSD fork); patch by David Hill.Eli Friedman2012-08-081-0/+1
| | | | llvm-svn: 161546
* [ms-inline asm] Add basic codegen support for simple asm stmts. Currently,Chad Rosier2012-08-081-0/+15
| | | | | | only machine specific clobbers are modeled. llvm-svn: 161524
* Fix an assertion failure with a C++ constructor initializing aEli Friedman2012-08-083-31/+9
| | | | | | member of reference type in an anonymous struct. PR13154. llvm-svn: 161473
* objc-arc: set nonlazybind attribute on objc_retain/Fariborz Jahanian2012-08-071-2/+6
| | | | | | | objc_release for performance for these most often called APIs. // rdar://12040837 llvm-svn: 161448
* If we don't have a complete type for the array type yet either thenEric Christopher2012-08-071-1/+4
| | | | | | | | just let the alignment be zero. PR13531 llvm-svn: 161379
* Remove some unintended changes from my last patch.Eric Christopher2012-08-071-3/+2
| | | | llvm-svn: 161369
* Make sure when we get the replacement type for a template argumentEric Christopher2012-08-071-5/+14
| | | | | | | | that we attach the lost qualifiers. Fixes rdar://11882155 llvm-svn: 161368
* Add __builtin_readcyclecounter() to produce the @llvm.readcyclecounter() ↵Hal Finkel2012-08-051-0/+4
| | | | | | intrinsic. llvm-svn: 161310
* Simplify code, no functionality change.Benjamin Kramer2012-08-041-6/+2
| | | | llvm-svn: 161303
* Fix the name of this variable.Eric Christopher2012-08-041-4/+4
| | | | llvm-svn: 161287
* Update comment to accurately reflect what should happen.Eric Christopher2012-08-041-1/+1
| | | | llvm-svn: 161286
* Make sure we don't emit IR for unused EH cleanups. PR13359.Eli Friedman2012-08-021-2/+6
| | | | llvm-svn: 161148
* When devirtualizing the conversion to a virtual base subobject,John McCall2012-08-011-57/+64
| | | | | | | | | | | don't explode if the offset we get is zero. This can happen if you have an empty virtual base class. While I'm at it, remove an unnecessary block from the IR-generation of the null-check, mark the eventual GEP as inbounds, and generally prettify. llvm-svn: 161100
* Remove deprecated getNameAsCString methods.Benjamin Kramer2012-07-311-1/+1
| | | | llvm-svn: 161044
* Introduce new queries on ObjCRuntime for how to interpret subscriptsJohn McCall2012-07-311-2/+5
| | | | | | | | on object pointers and whether pointer arithmetic on object pointers is supported. Make ObjFW interpret subscripts as pseudo-objects. Based on a patch by Jonathan Schleifer. llvm-svn: 161028
* Handle functions with struct arguments or return types and the regparmRafael Espindola2012-07-313-40/+130
| | | | | | | | | | | | | | attribute. It is a variation of the x86_64 ABI: * A struct returned indirectly uses the first register argument to pass the pointer. * Floats, Doubles and structs containing only one of them are not passed in registers. * Other structs are split into registers if they fit on the remaining ones. Otherwise they are passed in memory. * When a struct doesn't fit it still consumes the registers. llvm-svn: 161022
* Don't crash *or* insert a bogus autorelease when emitting aJohn McCall2012-07-312-1/+5
| | | | | | this-adjustment thunk in ARC++. llvm-svn: 161014
* clang/lib: [CMake] Update tblgen'd dependencies.NAKAMURA Takumi2012-07-271-0/+3
| | | | llvm-svn: 160851
* ABIArgInfo's constructor is private and only used by the static get* methods.Rafael Espindola2012-07-241-6/+6
| | | | | | No need to abuse default arguments. llvm-svn: 160684
* Emit debug info for dynamic initializers. Permit __attribute__((nodebug)) onNick Lewycky2012-07-241-2/+5
| | | | | | | variables that have static storage duration, it removes debug info on the emitted initializer function but not all debug info about this variable. llvm-svn: 160659
* move X86_32ABIInfo::computeInfo out of line.Rafael Espindola2012-07-241-8/+9
| | | | llvm-svn: 160652
* Make classifyReturnType and classifyArgumentType private.Rafael Espindola2012-07-231-3/+3
| | | | llvm-svn: 160648
* Change APInt to APSInt in one instance. Also change a call to operator==() toRichard Trieu2012-07-233-5/+5
| | | | | | APSInt::isSameValue() when comparing different sized APSInt's. llvm-svn: 160641
* Fix a typo (the the => the)Sylvestre Ledru2012-07-231-1/+1
| | | | llvm-svn: 160622
* Add "long double" to permitted list of ARM complex homogeneous aggregates.Tim Northover2012-07-201-1/+2
| | | | | | | Under AAPCS, long double is the same as double, which means it should be allowed as part of a homogeneous aggregate. llvm-svn: 160586
* Add the mechanics for -fms-inline-asm. No easy way to test at this time.Chad Rosier2012-07-201-0/+2
| | | | llvm-svn: 160580
* Remove HasSynthBitfield and all callers/writers/etc. Also removeEric Christopher2012-07-191-9/+1
| | | | | | | | previous ResetObjCLayout calls since this is now handled in Sema. Part of rdar://11842763 llvm-svn: 160527
* More replacing of target-dependent intrinsics with target-indepdent Joel Jones2012-07-181-2/+3
| | | | | | | | | | | | | | | | | | | | | intrinsics. The second instruction(s) to be handled are the vector versions of count set bits (ctpop). The changes here are to clang so that it generates a target independent vector ctpop when it sees an ARM dependent vector bits set count. The changes in llvm are to match the target independent vector ctpop and in VMCore/AutoUpgrade.cpp to update any existing bc files containing ARM dependent vector pop counts with target-independent ctpops. There are also changes to an existing test case in llvm for ARM vector count instructions and to a test for the bitcode upgrade. <rdar://problem/11892519> There is deliberately no test for the change to clang, as so far as I know, no consensus has been reached regarding how to test neon instructions in clang; q.v. <rdar://problem/8762292> llvm-svn: 160409
* Fixed whitespace issue introduced in r160373.Joao Matos2012-07-171-8/+7
| | | | llvm-svn: 160388
* [Windows] Abstract pure virtual method calls in the ABI. Fix the Windows ABI ↵Joao Matos2012-07-174-8/+15
| | | | | | to forward to the correct function. llvm-svn: 160373
* Revert commit r160308. We decide to move builtins selection to the backend.Simon Atanasyan2012-07-172-30/+0
| | | | llvm-svn: 160353
* MIPS: Implement __builtin_mips_shll_qb builtin function overloading.Simon Atanasyan2012-07-162-0/+30
| | | | | | | This function has two versions. The first one is used for a register operand. The second one is used for an immediate number. llvm-svn: 160308
* Update Clang to reflect the move of MDBuilder in r160237.Chandler Carruth2012-07-153-3/+3
| | | | llvm-svn: 160238
* Capitalize comment.Eric Christopher2012-07-141-1/+1
| | | | llvm-svn: 160220
* This is one of the first steps at moving to replace target-dependent Joel Jones2012-07-131-1/+4
| | | | | | | | | | | | | | | | | | | | intrinsics with target-indepdent intrinsics. The first instruction(s) to be handled are the vector versions of count leading zeros (ctlz). The changes here are to clang so that it generates a target independent vector ctlz when it sees an ARM dependent vector ctlz. The changes in llvm are to match the target independent vector ctlz and in VMCore/AutoUpgrade.cpp to update any existing bc files containing ARM dependent vector ctlzs with target-independent ctlzs. There are also changes to an existing test case in llvm for ARM vector count instructions and a new test for the bitcode upgrade. <rdar://problem/11831778> There is deliberately no test for the change to clang, as so far as I know, no consensus has been reached regarding how to test neon instructions in clang; q.v. <rdar://problem/8762292> llvm-svn: 160201
* [Windows] Use thiscall as the default calling convention for class methods. ↵Timur Iskhodzhanov2012-07-121-6/+11
| | | | | | PR12785 llvm-svn: 160121
OpenPOWER on IntegriCloud