9d232c884ea9872d6555df0fd7359699819bc1f1 |
|
07-Mar-2013 |
John McCall <rjmccall@apple.com> |
Change hasAggregateLLVMType, which conflates complex and aggregate types in a profoundly wrong way that has to be worked around in every call site, to getEvaluationKind, which classifies and distinguishes between all of these cases. Also, normalize the API for loading and storing complexes. I'm working on a larger patch and wanted to pull these changes out, but it would have be annoying to detangle them from each other. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
15e05e932ccf9ba2621394834b62684b42d6fd40 |
|
02-Mar-2013 |
Peter Collingbourne <peter@pcc.me.uk> |
LLVM API changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a6504853d297c30cfa271f4710af5a3d5db59449 |
|
26-Jan-2013 |
David Blaikie <dblaikie@gmail.com> |
PR14566: Debug Info: avoid top level lexical blocks in functions One of the gotchas (see changes to CodeGenFunction) was due to the fix in r139416 (for PR10829). This only worked previously because the top level lexical block would set the location to the end of the function, the debug location would be updated (as per r139416), the location would be set to the end of the function again (but that would no-op, since it was the same as the previous location), then the return instruction would be emitted using the debug location. Once the top level lexical block was no longer emitted, the end-of-function location change was causing the debug loc to be updated, regressing that bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3b844ba7d5be205a9b4f5f0b0d1b7978977f4b8c |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to reflect the migration in r171366. Re-sort the #include lines to reflect the new paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
72390b39c545426023ec104afe8706395d732bad |
|
20-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename llvm::Attributes to llvm::Attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170722 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ad017fa7a4df7389d245d02a49b3c79ed70bedb9 |
|
20-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r170500. It over-zealously converted *ALL* things named Attributes, which is wrong here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
094dbf917127a1228147587076d59ca45b7c258d |
|
19-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
785b778203a474c6e4b9e17ae91cd2a358868877 |
|
08-Dec-2012 |
Bill Wendling <isanbard@gmail.com> |
s/AttrListPtr/AttributeSet/g to better label what this class is going to be in the near future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
55fc873017f10f6f566b182b70f6fc22aefa3464 |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort all of Clang's files under 'lib', and fix up the broken headers uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e6b3dbae38f62164cab3989380cd940242d80120 |
|
29-Oct-2012 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Handle '*' and '#' asm constraint modifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3d7c780d93ebcb84a1224de8c44835ea43e82b15 |
|
27-Oct-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing safety check to an optimization for do-while loops. PR14191. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a6375560645177168099f1a1d96be8fa4718aa8e |
|
16-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0d5833921cc728bc1d2e45fbaf7b3e11cddbf99d |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Move the Attributes::Builder outside of the Attributes class and into its own class named AttrBuilder. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
75d37b493e2282f993a19a166bd573b03a7535af |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Use enum values instead of magic numbers for indexing into the attribute list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
50e6b18f99c45b31e6216ab221f6b3911b24fa1f |
|
15-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Attributes Rewrite Convert the uses of the Attributes class over to the new format. The Attributes::get method call now takes an LLVM context so that the attributes object can be uniquified and stored. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
603571a2d6daca43162bf1d9469baf919697c00a |
|
10-Oct-2012 |
Bill Wendling <isanbard@gmail.com> |
Remove the final bits of Attributes being declared in the Attribute namespace. Use the attribute's enum value instead. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
25a6a84cf5067b32c271e3ba078676dee838798d |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9f357de8d5823f9b13cf33ad1f6af1dd69b7669f |
|
25-Sep-2012 |
John McCall <rjmccall@apple.com> |
During jump-scope checking, build an ExprWithCleanups immediately into the enclosing scope; this is a more accurate model but is (I believe) unnecessary in my test case due to other flaws. However, one of those flaws is now intentional: blocks which appear in return statements can be trivially observed to not extend in lifetime past the return, and so we can allow a jump past them. Do the necessary magic in IR-generation to make this work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fcf75a3d8c072eabbf25c9b33ccbb1b8bd042cfc |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Update for r163231. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
790cbd84d07f0dc9253ade9f67e6ed8c43f08a59 |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Set the inline assembly dialect in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ef5c554a0c953c51e6876fa48544ace1c3e2872b |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Remove the Inline Asm Non-Standard Dialect attribute. This implementation does not co-exist well with how the sideeffect and alignstack attributes are handled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2ab7d43e450333d52fdf087bf2558a74dbe3c9fd |
|
04-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Minor cleanup to improve code readability. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
568ba871bbac959029671b81f8e531edb7e0d7d6 |
|
04-Sep-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Revert r163083 per chandlerc's request. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5be92de217a1940d0e109abd0f401df4480c1a4b |
|
02-Sep-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Implemented parsing and AST support for the MS __leave exception statement. Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d1a8d2ef757ad880d48b2249a1619bf8209e9cf8 |
|
28-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Have MSAsmStmts use the generic EmitAsmStmt codegen function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a23b91d542e336be5051ac54f394e860fb756911 |
|
28-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Rename EmitGCCAsmStmt to EmitAsmStmt and have it accept AsmStmts. This function is only used by GCCAsmStmts, however. Constraints need to be properly computed before MSAsmStmts can use EmitAsmStmt. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
33f0558f75f70061707d1388e305b8f92f4e55de |
|
28-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add virtual function, getClobber, that returns a StringRef. More work towards unifying asm stmt codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5c7f59445ae68109c7ffee731aca2ce32db587c7 |
|
28-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Rename getClobber to getClobberStringLiteral. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
da083b2ce8db27ce6e508cb77cb12c0fc8b7cad9 |
|
27-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Rename GenerateAsmString to generateAsmString to conform with coding standards. Also, add stub for MSAsmStmt class as part of unifying codegen logic for AsmStmts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
df5faf5e7ae6823d0af0b801c4ac26d47f2cee97 |
|
25-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] As part of a larger refactoring, rename AsmStmt to GCCAsmStmt. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
56d7f2348a182002563700db2158da0c6fc115a5 |
|
24-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Change the -fenable-experimental-ms-inline-asm option from a CodeGen option to a LangOpt option. In turn, hoist the guard into the parser so that we avoid the new (and fairly unstable) Sema/AST/CodeGen logic. This should restore the behavior of clang to that prior to r158325. <rdar://problem/12163681> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
17083601193528a5d3770b688ffdf700f7df3c45 |
|
24-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
be3ace834ee7438915e73d2115365d57d03ceb99 |
|
24-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Refactor code. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
42b60551eff3a424e191b293bfd606559dc96bff |
|
23-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Remove an unused argument. This logic can now be reused by the ms-style inline asms. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2735df2eb16acfb92b8cd24e163e3a74a7a4d950 |
|
22-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Start sending non-simple inline asms to the AsmParser. The parser still can't handle all cases, so fall back to emitting a simple MSAsmStmt if we get into trouble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5aad79f8d54bf4356b2c8b9e56ace9ac8c39adb0 |
|
15-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add support for clobbers in CodeGen. This is a reapplication of r161914 now that the scoping issue has been resolved in r161966. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
dece8b325821acaa5b91e97cf03baf610f264e01 |
|
15-Aug-2012 |
Eric Christopher <echristo@apple.com> |
Revert this to try to bring the i386 bots back. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2f834a5f5a4df86a70958f418e9773cd7a0aea42 |
|
15-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add support for clobbers in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
74896e074856c3248d88ddddf45bfda7256ab022 |
|
10-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Use the new Inline Asm Non-Standard Dialect attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
48a05b9e3a80b58a9089667ebb537b80af8c3263 |
|
08-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Add basic codegen support for simple asm stmts. Currently, only machine specific clobbers are modeled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e1ecdc168175719d74e112bcacd4aae5e12d4631 |
|
23-Jul-2012 |
Richard Trieu <rtrieu@google.com> |
Change APInt to APSInt in one instance. Also change a call to operator==() to APSInt::isSameValue() when comparing different sized APSInt's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
89770e5640dd5039569ecdc64c61acd9aa22cff9 |
|
20-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
Add the mechanics for -fms-inline-asm. No easy way to test at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
52e4ed949ba52958db1e938860e3b49944ce8680 |
|
20-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-style asm] Change the fatal error to an extension warning. Apparently, this error was asserting on anything that included Windows.h. MS-style inline asm is still dropped, but at least now we're not completely silent about it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
6f61ba2e57aac6fc76638addce18ed59137ab9c1 |
|
20-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b1756ef7b643fcc79dce0bdd1539a9b2eb8cf9e0 |
|
11-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
Make CodeGenFunction::EmitMSAsmStmt throw a fatal error as MS-style inline assembly is completely untested and unsupported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
8cd64b4c5553fa6284d248336cb7c82dc960a394 |
|
11-Jun-2012 |
Chad Rosier <mcrosier@apple.com> |
Etch out the code path for MS-style inline assembly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d1c0c940ebc8e55d5c4672f61abedf87d6ea36f4 |
|
01-May-2012 |
Chad Rosier <mcrosier@apple.com> |
Spacing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
534986f2b21e6050bf00163cd6423fd92155a6ed |
|
14-Apr-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add an AttributedStmt type to represent a statement with C++11 attributes attached. Since we do not support any attributes which appertain to a statement (yet), testing of this is necessarily quite minimal. Patch by Alexander Kornienko! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
c07833795aa6e569de5bb90945f5017b9969288d |
|
10-Apr-2012 |
Eric Christopher <echristo@apple.com> |
For debug and coverage analysis if we're not optimizing go ahead and emit a relatively empty block for a plain break statement. This enables us to track where we went through a switch. PR9796 & rdar://11215207 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2b124ea9d2c27c6d002ecd4623f6321e305d907e |
|
10-Apr-2012 |
Eric Christopher <echristo@apple.com> |
EmitStopPoint already checks if we have debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fc65ec83f6719f06e460b61f83a3ba1e80c18d04 |
|
10-Apr-2012 |
Eric Christopher <echristo@apple.com> |
Tidy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
649b4a1a9b5e6f768ca0cb84bd97b00f51083e15 |
|
29-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
Revert r153613 as it's causing large compile-time regressions on the nightly testers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
57cd1b89cd91433ce1991a5bff36fe776a263796 |
|
29-Mar-2012 |
John McCall <rjmccall@apple.com> |
When we can't prove that the target of an aggregate copy is a complete object, the memcpy needs to use the data size of the structure instead of its sizeof() value. Fixes PR12204. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
acb5310542b82e7acf5f5a91fa619e4b7efeff5c |
|
23-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
When an MMX output variable is tied to the input variable, we have to implicitly cast the value to x86_mmx. This gives the ASM string the correct call signature. <rdar://problem/10919182> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a43ef3e0511dc48d98d61598163c9deddc09cb9c |
|
16-Mar-2012 |
Eli Friedman <eli.friedman@gmail.com> |
When a variable has a specified asm name, but isn't using the register storage class, the asm name doesn't specify a register. PR12244. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fdc5d565b30bd2009ec98aac4b5846a740aff767 |
|
23-Feb-2012 |
Eric Christopher <echristo@apple.com> |
Fold debug scope emission into the cleanup scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
8b418685e9e4f02f4eb2a76e1ec063e07552b68d |
|
07-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ab14ae2ab16088b6a7f69eac6e152c3e9f9ea01b |
|
01-Feb-2012 |
Stepan Dyatkovskiy <stpworld@narod.ru> |
Compatability fix for SwitchInst refactoring. The purpose of refactoring is to hide operand roles from SwitchInst user (programmer). If you want to play with operands directly, probably you will need lower level methods than SwitchInst ones (TerminatorInst or may be User). After this patch we can reorganize SwitchInst operands and successors as we want. What was done: 1. Changed semantics of index inside the getCaseValue method: getCaseValue(0) means "get first case", not a condition. Use getCondition() if you want to resolve the condition. I propose don't mix SwitchInst case indexing with low level indexing (TI successors indexing, User's operands indexing), since it may be dangerous. 2. By the same reason findCaseValue(ConstantInt*) returns actual number of case value. 0 means first case, not default. If there is no case with given value, ErrorIndex will returned. 3. Added getCaseSuccessor method. I propose to avoid usage of TerminatorInst::getSuccessor if you want to resolve case successor BB. Use getCaseSuccessor instead, since internal SwitchInst organization of operands/successors is hidden and may be changed in any moment. 4. Added resolveSuccessorIndex and resolveCaseIndex. The main purpose of these methods is to see how case successors are really mapped in TerminatorInst. 4.1 "resolveSuccessorIndex" was created if you need to level down from SwitchInst to TerminatorInst. It returns TerminatorInst's successor index for given case successor. 4.2 "resolveCaseIndex" converts low level successors index to case index that curresponds to the given successor. Note: There are also related compatability fix patches for dragonegg, klee, llvm-gcc-4.0, llvm-gcc-4.2, safecode, clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
303b4f946470a054cea8f91af54008aeb3c09507 |
|
18-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
output body of folded case again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
985df1c1f2d0666a09bc03f3593929286b0dea65 |
|
18-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
Folding away unreachable case statement. patch (slightly revised) by Aaron Ballman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d66715d83e64b6bfd0bddebe51874b1b7a64abef |
|
16-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
Fixes a crash during constant folding of a switch and case statement which has an unscoped case inside it. Patch by Aaron Ballman git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d7722d9d76a851e7897f4127626616d3b1b8e530 |
|
03-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Switch the Alignment argument on AggValueSlot over to CharUnits, per John's review comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f394078fde147dcf27e9b6a7965517388d64dcb6 |
|
03-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Track alignment in AggValueSlot. No functional change in this patch, but I'll be introducing uses of the specified alignment soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ba0513de93d2fab6db5ab30b6927209fcc883078 |
|
25-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for dependent Microsoft __if_exists/__if_not_exists statements. As noted in the documentation for the AST node, the semantics of __if_exists/__if_not_exists are somewhat different from the way Visual C++ implements them, because our parsed-template representation can't accommodate VC++ semantics without serious contortions. Hopefully this implementation is "good enough". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
73fb35003aad027492e661a3749e921b5d1ecaf9 |
|
13-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Recommit: Start handling debug line and scope information better: Migrate most of the location setting within the larger API in CGDebugInfo and update a lot of callers. Remove the existing file/scope change machinery in UpdateLineDirectiveRegion and replace it with DILexicalBlockFile usage. Finishes off the rest of rdar://10246360 after fixing a few bugs that were exposed in gdb testsuite testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
28e06354b5d4dd539be6781e388ff27c0dffd807 |
|
12-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Revert file/scope handling patches. gdb testing revealed a couple of bugs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4b2d5498729a74a8e952bdf762e6f2d8c6b52690 |
|
12-Oct-2011 |
Eric Christopher <echristo@apple.com> |
Start handling debug line and scope information better: Migrate most of the location setting within the larger API in CGDebugInfo and update a lot of callers. Remove the existing file/scope change machinery in UpdateLineDirectiveRegion and replace it with DILexicalBlockFile usage. Finishes off the rest of rdar://10246360 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a6b8b2c09610b8bc4330e948ece8b940c2386406 |
|
10-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Constant expression evaluation refactoring: - Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions, and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert behaviour. - Factor out evaluation of bitfield bit widths. - Fix a few places which would evaluate an expression twice: once to determine whether it is a constant expression, then again to get the value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
aa2164cc2aecafb9efbddd72e6f25cea4995b330 |
|
29-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Change "Regions" to be "LexicalBlocks" since that's what they correspond to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5321bc492b2f29deecb6cb0bc68b7887164ee8a6 |
|
29-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Rename EmitStopPoint in CGDebugInfo to EmitLocation. "stop points" don't exist anymore. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
414ee4bb74957b4c5fe05e11848028e4701b51f7 |
|
29-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Call UpdateLineDirectiveRegion every time we want to emit a stop point in the code. Ensures that we don't miss any places and the check is reasonably cheap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
578faa837b552403e2002b97fdfbfde14f2448e5 |
|
27-Sep-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
de-tmpify clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f9aac38d1290c17192a74b5bc2de52b9fb1a87ca |
|
26-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Fix comment to reflect reality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Removing a bunch of dead returns/breaks after llvm_unreachables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
410ffb2bc5f072d58a73c14560345bcf77dec1cc |
|
26-Aug-2011 |
John McCall <rjmccall@apple.com> |
Track whether an AggValueSlot is potentially aliased, and do not emit call results into potentially aliased slots. This allows us to properly mark indirect return slots as noalias, at the cost of requiring an extra memcpy when assigning an aggregate call result into a l-value. It also brings us into compliance with the x86-64 ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
7c2349be2d11143a2e59a167fd43362a3bf4585e |
|
25-Aug-2011 |
John McCall <rjmccall@apple.com> |
Use stronger typing for the flags on AggValueSlot and require creators to tell us whether something needs GC barriers. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
777d6e56ad9b1fed9866daf3ee6486d85c5b7d32 |
|
11-Aug-2011 |
John McCall <rjmccall@apple.com> |
Simplify EH control flow by observing that EH scopes form a simple hierarchy of delegation, and that EH selector values are meaningful function-wide (good thing, too, or inlining wouldn't work). 2,3d 1a hierarchy of delegation and that EH selector values have the same meaning everywhere in the function instead of being meaningful only in the context of a specific selector. This removes the need for routing edges through EH cleanups, since a cleanup simply always branches to its enclosing scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
93f1322684e928a559286ba1c7cb83af077aa658 |
|
29-Jul-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Fix assertion failure in CodeGen where the input operand to an asm instruction is tied to an output operand which is a pointer, and the input operand is narrower than the output operand. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2acc6e3feda5e4f7d9009bdcf8b1cd777fecfe2d |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
de-constify llvm::Type, patch by David Blaikie! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4c7d9f1507d0f102bd4133bba63348636facd469 |
|
15-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert CallInst and InvokeInst APIs to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ef6de3da8572607f786303c07150daa6e140ab19 |
|
11-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
De-constify Types in StructType::get() and TargetData::getIntPtrType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9cbe4f0ba01ec304e1e3d071c071f7bca33631c0 |
|
09-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
clang side to match the LLVM IR type system rewrite patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
de31fd7eeebdc64fb043463e7f515dab8eccac8d |
|
28-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Split out logic for valid clobbers and valid inline asm registers. Fixes rdar://9281377 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
545d996ec5a3113f046944f11b27cc2d6cb055b4 |
|
25-Jun-2011 |
John McCall <rjmccall@apple.com> |
LValue carries a type now, so simplify the main EmitLoad/Store APIs by removing the redundant type parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
43fec879a527c74ff01d8aa2bf94a12432249fc7 |
|
21-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Canonicalize register names properly. Fixes rdar://9425559 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e3e07a5b3490bc2977859d56bac211afac2236fb |
|
17-Jun-2011 |
Eric Christopher <echristo@apple.com> |
Check the specific target to figure out if a constraint is a valid register constraint. Note that we're not checking if the register itself is valid for the constraint. Fixes rdar://9382985 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f85e193739c953358c865005855253af4f68a497 |
|
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting. Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
002333f8b2cf1a8614e532f6ce366b21af85142c |
|
08-Jun-2011 |
Stuart Hastings <stuart@apple.com> |
Clang support for ARM Uv/Uy/Uq inline-asm constraints. rdar://problem/9037836 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9198126067a447f8aaccf9fff09be294c8bcb81e |
|
04-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Rework r132576. Emit debug info only if there is an insertion point. The debug info should not force an insertion point. Codegen may later on decide to not emit code for some reason, see extensive comment in CodeGenFunction::EmitStmt(), and debug info should not get in the way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
c594abdb78b67d477c9bdd24c3600aec3dc2eda4 |
|
03-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Emit debug info only if there is an insertion point. The debug info should not force an insertion point. Codegen may later on decide to not emit code for some reason, see extensive comment in CodeGenFunction::EmitStmt(), and debug info should not get in the way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a18f539628a6506bae6af52eacd541cebefff762 |
|
03-Jun-2011 |
Eric Christopher <echristo@apple.com> |
80-column cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4d509341bd5db06a517daa311379f52bb540bc34 |
|
21-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the clang part of PR7952: rewrite the specialization of isa<> in DeclBase, and stop abusing the multi-level dereference isa<> used to allow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
28bbe4b8acc338476fe0825769b41fb32b423c72 |
|
28-Apr-2011 |
John Wiegley <johnw@boostpro.com> |
Parsing/AST support for Structured Exception Handling Patch authored by Sohail Somani. Provide parsing and AST support for Windows structured exception handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
6f141659cab11109d9931d92d0988f8850778de3 |
|
21-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
PR9214: Convert Metadata API to use ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
97d5437f48f8d935bf053915ab3d250edfe5fad5 |
|
19-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
use the newly introduced IRBuilder getInt() method to reduce some redundancy pointed out by John. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
421048698b6b6bf86754190bcfe98a0ed82ee5b5 |
|
18-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a miscompilation I introduced in r129652, thanks for Eli for tracking it down. we effectively were compile the testcase into: void test14(int x) { switch (x) { case 11: break; case 42: test14(97); // fallthrough default: test14(42); break; which is not the same thing at all. This fixes a miscompilation of MallocBench/gs seen on the clang-x86_64-linux-fnt buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b11f9198111796ada02b57f62cdea92134fde9f7 |
|
17-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
implement rdar://9289524 - case followed immediately by break results in empty IR block, a -O0 code quality issue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ad762fcdc16b9e4705b12b09d92b8c026212b906 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
acd723666777b4ac1f79a97b6a300e6cf919d519 |
|
30-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Fix in r128471 is very broad. Some of the unconditional branches need line number information for better user experience. Restrict the fix. This fixes break.exp failures from gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b603c90b75df2141c5722816a13920221eb4faee |
|
29-Mar-2011 |
Devang Patel <dpatel@apple.com> |
Do not line number entry for unconditional branches. Usually, users do not want to stop at closing '}'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3f06e274736eab9821ce0dc2bd8e166fe0e3aa7e |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Make skipping of vardecls more precise: it's ok to skip a decl if the entire compound stmt containing the decl is skipped. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9467110fcef8a3e4caf9e5d022cff0322afe6e8b |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
make switch constant folding a bit stronger, handling a missed case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
035287d73947320d2ff65b7d9a5c3d990427eee3 |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
remove a bogus assertion, add a comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3858938b043bac2f046304ff99a54905acdcc6dd |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
make switch condition constant folding much more aggressive, handling compound statements and break statements. This implements enough to handle PR9322 and rdar://6970405. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fda0f1f5a278548b012401be07e287c1697fc41c |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
First tiny step to implementing PR9322: build infrastructure for only emitting the live case of a switch statement when switching on a constant. This is terribly limited, but enough to handle the trivial example included. Before we would emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 switch i32 1, label %sw.epilog [ i32 1, label %sw.bb ] sw.bb: ; preds = %entry %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 br label %sw.epilog sw.epilog: ; preds = %sw.bb, %entry switch i32 0, label %sw.epilog3 [ i32 1, label %sw.bb1 ] sw.bb1: ; preds = %sw.epilog %tmp2 = load i32* %i.addr, align 4 %add = add nsw i32 %tmp2, 2 store i32 %add, i32* %i.addr, align 4 br label %sw.epilog3 sw.epilog3: ; preds = %sw.bb1, %sw.epilog ret void } now we emit: define void @test1(i32 %i) nounwind { entry: %i.addr = alloca i32, align 4 store i32 %i, i32* %i.addr, align 4 %tmp = load i32* %i.addr, align 4 %inc = add nsw i32 %tmp, 1 store i32 %inc, i32* %i.addr, align 4 ret void } This improves -O0 compile time (less IR to generate and shove through the code generator) and the clever linux kernel people found a way to fail to build if we don't do this optimization. This step isn't enough to handle the kernel case though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
c2c90011a688c04a4e980282f08c267e081c4b00 |
|
28-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Change the interface to ConstantFoldsToSimpleInteger to not encode a bool + success into one tri-state integer, simplifying things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4b93d660c6326ec79b5e369317d1051cf826c2f3 |
|
20-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Re-instate r125819 and r125820 with no functionality change git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
96b1d4b4eb6b18dd6df7a2c0833332b45840580f |
|
19-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 125820 and 125819 to fix PR9266. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ef9a1d0e13662162aa8cdae8732c33b5d751d80c |
|
18-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move TargetInfo::adjustInlineAsmType to TargetCodeGenInfo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298 |
|
17-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Step #1/N of implementing support for __label__: split labels into LabelDecl and LabelStmt. There is a 1-1 correspondence between the two, but this simplifies a bunch of code by itself. This is because labels are the only place where we previously had references to random other statements, causing grief for AST serialization and other stuff. This does cause one regression (attr(unused) doesn't silence unused label warnings) which I'll address next. This does fix some minor bugs: 1. "The only valid attribute " diagnostic was capitalized. 2. Various diagnostics printed as ''labelname'' instead of 'labelname' 3. This reduces duplication of label checking between functions and blocks. Review appreciated, particularly for the cindex and template bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
63c00d7f35fa060c0a446c9df3a4402d9c7757fe |
|
09-Feb-2011 |
John McCall <rjmccall@apple.com> |
Remove vtables from the Stmt hierarchy; this was pretty easy as there were only three virtual methods of any significance. The primary way to grab child iterators now is with Stmt::child_range children(); Stmt::const_child_range children() const; where a child_range is just a std::pair of iterators suitable for being llvm::tie'd to some locals. I've left the old child_begin() and child_end() accessors in place, but it's probably a substantial penalty to grab the iterators individually now, since the switch-based dispatch is kindof inherently slower than vtable dispatch. Grabbing them together is probably a slight win over the status quo, although of course we could've achieved that with vtables, too. I also reclassified SwitchCase (correctly) as an abstract Stmt class, which (as the first such class that wasn't an Expr subclass) required some fiddling in a few places. There are somewhat gross metaprogramming hooks in place to ensure that new statements/expressions continue to implement getSourceRange() and children(). I had to work around a recent clang bug; dgregor actually fixed it already, but I didn't want to introduce a selfhosting dependency on ToT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d16c2cf1cafa413709aa487cbbd5dc392f1ba1ff |
|
08-Feb-2011 |
John McCall <rjmccall@apple.com> |
Reorganize CodeGen{Function,Module} to eliminate the unfortunate Block{Function,Module} base class. Minor other refactorings. Fixed a few address-space bugs while I was there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
cd5b22e12b6513163dd131589746c194090f14e6 |
|
12-Jan-2011 |
John McCall <rjmccall@apple.com> |
Fix a latent bug where, after emitting an expression statement, we would delete the block we began emitting into if it had no predecessors. We never want to do this, because there are several valid cases during statement emission where an existing block has no known predecessors but will acquire some later. The case in my test case doesn't inherently fall into this category, because we could safely emit the case-range code before the statement body, but there are examples with labels that can't be fallen into that would also demonstrate this bug. rdar://problem/8837067 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
cbf40f913aa2aa5de6e0540fed209405d00a2c69 |
|
05-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
fix a -Wself-assign warning git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
33a53440eb025dc511b7dcb27dea8029cc28b34f |
|
02-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for passing variables declared to use a xmm register to asm statements using the "x" constraint. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
baf86955a9a390f2643a1ea9806832eb4a92f716 |
|
01-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Produce a better error message for invalid register names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
03117d1b2e32d18652401b12d9049871992bf3ad |
|
01-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix typo and add comment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0ec89f928ce5b3294c2ed644ec1a42656e1af39d |
|
30-Dec-2010 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for declaring register contraints in variables. They are only used in asm statements: register int foo asm("rdi"); asm("..." : ... "r" (foo) ... We also only accept these variables if the constraint in the asm statement is "r". This fixes most of PR3933. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2a41637a995affa1563f4d82a8b026e326a2faa0 |
|
05-Dec-2010 |
John McCall <rjmccall@apple.com> |
Fix a bug in the emission of __real/__imag l-values on scalar operands. Fix a bug in the emission of complex compound assignment l-values. Introduce a method to emit an expression whose value isn't relevant. Make that method evaluate its operand as an l-value if it is one. Fixes our volatile compliance in C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5d93653247eeedaff5f0712178953b63d71a0b3b |
|
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
When forming the !srcloc mdnode for an inline asm, add the SourceLocations of all the lines of the inline asm. With the refactoring and enhancement of the backend, we can now reports errors on the correct source line when an asm contains multiple lines of text. For something like this: void foo() { asm("push %rax\n" ".code32\n"); } we used to get this: (note that the line 4 in t.c isn't helpful) t.c:4:7: error: warning: ignoring directive for now asm("push %rax\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ now we get: t.c:5:8: error: warning: ignoring directive for now ".code32\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ Note that we're pointing to line 5 properly now. This implements rdar://7839391 - inline asm errors should point to the right line in the asm and makes the error message in PR8595 much less confusing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
47fc7e93b6af9e6a967231133a2f4bc626eeed26 |
|
17-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
factor some code out to a helper function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f6e2c2039f76fa58799f6d155892d54fc95755e1 |
|
30-Oct-2010 |
Dale Johannesen <dalej@apple.com> |
Generate bitcasts going in and out of MMX parameters in asm's. PR 8501, 8602988. I don't like including Type.h where it is; the idea was to get references to X86_MMXTy out of the common code. Maybe there's a better way? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
95c225de9fa3d79f70ef5008c0279580a7d9dcad |
|
28-Oct-2010 |
John McCall <rjmccall@apple.com> |
Implement an indirect-goto optimization for goto *&&lbl and respect this in the scope checker. With that done, turn an indirect goto into a protected scope into a hard error; otherwise IR generation has to start worrying about declarations not dominating their scopes, as exemplified in PR8473. If this really affects anyone, I can probably adjust this to only hard-error on possible indirect gotos into VLA scopes rather than arbitrary scopes. But we'll see how people cope with the aggressive change on the marginal feature. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b6bbcc9995186799a60ce17d0c1acff31601653a |
|
15-Oct-2010 |
John McCall <rjmccall@apple.com> |
Death to blocks, or at least the word "block" in one particular obnoxiously ambiguous context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2f474ea9ef7505df5d092287c48c19974222293b |
|
18-Sep-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Added '|' delimiter to separate inline asm multiple alternative constraints for Clang side of support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
558d2abc7f9fd6801cc7677200992313ae90b5d8 |
|
15-Sep-2010 |
John McCall <rjmccall@apple.com> |
one piece of code is responsible for the lifetime of every aggregate slot. The easiest way to do that was to bundle up the information we care about for aggregate slots into a new structure which demands that its creators at least consider the question. I could probably be convinced that the ObjC 'needs GC' bit should be rolled into this structure. Implement generalized copy elision. The main obstacle here is that IR-generation must be much more careful about making sure that exactly git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0554e0e30d24d9ad7d5e12f8e7583ebb5c9715bf |
|
25-Aug-2010 |
Devang Patel <dpatel@apple.com> |
Fix 'for' loop variables' scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a7e6845660f91ec611427e1db842780e1ec12bdb |
|
22-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Detabify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ef44e1110711276ffffe4b22d4ba0cebd49cb330 |
|
10-Aug-2010 |
John Thompson <John.Thompson.JTSoftware@gmail.com> |
Slightly revised handling of mult-alt constraints, to avoid an assert, until we have the full fix. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ff8e11579fc904aa4032d90d2be6ce1ac5fc9fe1 |
|
23-Jul-2010 |
John McCall <rjmccall@apple.com> |
Revise cleanup IR generation to fix a major bug with cleanups (PR7686) as well as some significant asymptotic inefficiencies with threading multiple jumps through deep cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5a6fbcfd8c15a2296f94a0473a68ec09d429827f |
|
23-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Keep track of artificial scopes introduced by line directives. For example, #line 41 "bar.c" dummy (1, i); #line 24 "bar.h" i = f2 (i); #line 44 "bar.c" This is tested by step-line.exp in gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4d939e64142126b872e39c11dc995aa993f137fe |
|
21-Jul-2010 |
Devang Patel <dpatel@apple.com> |
Remove unused argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
6d7cfd7ef82e42ff30ee1dafd2883fd94e9f8294 |
|
16-Jul-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR3800: make sure not to evaluate the expression for a read-write asm operand twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f1549f66a8216a78112286e3978cea2c29d6334c |
|
06-Jul-2010 |
John McCall <rjmccall@apple.com> |
Validated by nightly-test runs on x86 and x86-64 darwin, including after self-host. Hopefully these results hold up on different platforms. I tried to keep the GNU ObjC runtime happy, but it's hard for me to test. Reimplement how clang generates IR for exceptions. Instead of creating new invoke destinations which sequentially chain to the previous destination, push a more semantic representation of *why* we need the cleanup/catch/filter behavior, then collect that information into a single landing pad upon request. Also reorganizes how normal cleanups (i.e. cleanups triggered by non-exceptional control flow) are generated, since it's actually fairly closely tied in with the former. Remove the need to track which cleanup scope a block is associated with. Document a lot of previously poorly-understood (by me, at least) behavior. The new framework implements the Horrible Hack (tm), which requires every landing pad to have a catch-all so that inlining will work. Clang no longer requires the Horrible Hack just to make exceptions flow correctly within a function, however. The HH is an unfortunate requirement of LLVM's EH IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
77b89b87c3b9220fea1bc80f6d6598d2003cc8a8 |
|
27-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
finally get around to doing a significant cleanup to irgen: have CGF create and make accessible standard int32,int64 and intptr types. This fixes a ton of 80 column violations introduced by LLVMContextification and cleans up stuff a lot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
32f36baa6c8d491c374af622b4e3ac28d597453c |
|
26-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Change EmitReferenceBindingToExpr to take a decl instead of a boolean. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
89cf2e3d9d356a8b960a5ab12ccc677fe2dce7f8 |
|
23-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a comment for r104472. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
92b9bd96ce25630f73717965fcaf4b5a761e49e5 |
|
23-May-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
PR5863: Don't erase unreachable BBs which have an associated cleanup size. This works around a crash where malloc reused the memory of an erased BB for a new BB leaving old cleanup information pointing at the new block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
45d3fe1898d3726d269a0bd2ccb8527102e29d79 |
|
21-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Don't remove the break/continue scope of a for loop until after we've emitted the increment expression. Fixes PR7189. If someone knows how to write a useful test for this, I'd be grateful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3d91bbcdab155181556969cad6ec97014405aced |
|
17-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Ensure that destructors are called for NRVO'd objects when the function does not return. Thanks to Eli for pointing out this corner case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d86c477fb5d3fc34864afecbbb5443da9355e8fb |
|
15-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement a simple form of the C++ named return value optimization for return statements. We perform NRVO only when all of the return statements in the function return the same variable. Fixes some link failures in Boost.Interprocess (which is relying on NRVO), and probably improves performance for some C++ applications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
60e4fd95ed8c1f99697f4d9f73d07717b6e21048 |
|
12-May-2010 |
Devang Patel <dpatel@apple.com> |
Use end location of DeclStmt to mark stop point. This is meaningful for blocks. This patch fixes bunch of test failures in gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2dca88fc6d3e606a8131712be1800e3a4b90ca3e |
|
24-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Fix a place in inline asm lowering which was creating a TruncInst with a pointer operand. This fixes an abort on MultiSource/Applications/ClamAV/libclamav_mbox.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
aab64d0b7f41ed30b15ba9210ed859424cbc7455 |
|
23-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Implement PR6845. We allow matching constraints to have different input and output types when the smaller value isn't mentioned in the asm string. Extend this support from integers to also allowing fp values to be mismatched (if not mentioned in the asm string). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
548ce5e78215a34f409d597bb2c1e9f897a8eda3 |
|
21-Apr-2010 |
John McCall <rjmccall@apple.com> |
I failed to notice that my last patch wasn't doing as much as it could because EmitBranch actually clears the insert point. This version actually accomplishes what I initially wanted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
839cbaa004a24e8f1ea14db5ed76e3d25ed28996 |
|
21-Apr-2010 |
John McCall <rjmccall@apple.com> |
Teach EmitBlock to put the target block immediately after the current block (if there's a current block). The chief advantage of doing this is that it lets us pick blocks (e.g. EH blocks) to push to the end of the function so that fallthrough happens consistently --- i.e. it gives us the flexibility of ordering blocks as we please without having to change the order in which we generate code. There are standard (?) optimization passes which can do some of that for us, but better to generate reasonable code to begin with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
cd9199eb3dd1a665ea642f3918020a53e5ecb673 |
|
13-Apr-2010 |
Devang Patel <dpatel@apple.com> |
Fix debug info for cleanup block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fc1a9c312d249a2c7458f763f848ba42685c23f8 |
|
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
a ridiculous amount of propagation through the backend later, have the code generate slap a srcloc metadata on inline asm nodes. This allows us to diagnose invalid inline asms with such nice diagnostics as: <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ asm.c:2:12: note: generated from here __asm__ ("abc incl %0" : "+r" (X)); ^ 2 diagnostics generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
33fd1fc1814a5573c972840d49317989e20deace |
|
25-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
When returning from a function that has a reference return type, use EmitReferenceBindingToExpr() rather than assuming we have an lvalue. This is just the lowest hanging fruit for PR6024, which still requires a bit of work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b992259f7790d3fb9fc5c2eb7182d7af9d64f9ac |
|
03-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR6475, we were doing side-effecting stuff in an assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e86bcf0d9ea62cc75e545787896083f8a6bc81a1 |
|
08-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Reapply r95393, without the change to CGExpr. I was wrong in assuming that the element type always matched the converted LLVM type for ExprType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a5002106fbe5563aa59eba007416074d5b1ffecf |
|
05-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r95393, which broke Clang's self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
027627115ca1c486e420db7cd8439f25531135bb |
|
05-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that need to deal with aggregates specially; this is consistent with the rest of IRgen. Also, simplify EmitParmDecl and don't worry about using Decl::getNameAsString. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a5a79f7d16b48d3be8bcc8c7650e31aefd92b657 |
|
30-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
More asm cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
83c021c6d33aa173cf1a6e3bc61006dabb042703 |
|
30-Jan-2010 |
Anders Carlsson <andersca@mac.com> |
Yay for more StringRefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d975206755e26a391f4a1cd8bf8f96a6a65b05e6 |
|
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement proper cleanup semantics for condition variables in for statements, e.g., for(; X x = X(); ) { ... } Daniel or Anders, please review! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
99e9b4d172f6877e6ba5ebe75bb8238721f5e01c |
|
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate CXXConditionDeclExpr with extreme prejudice. All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5656e14d91405417182171a705ed3e3d2d6d7aa3 |
|
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Clean up the AST for while loops and fix several problems with cleanups for while loops: 1) Make sure that we destroy the condition variable of a while statement each time through the loop for, e.g., while (shared_ptr<WorkInt> p = getWorkItem()) { // ... } 2) Make sure that we always enter a new cleanup scope for the body of the while loop, even when there is no compound expression, e.g., while (blah) RAIIObject raii(blah+1); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d3d5301c44138b92bf01286183f5bf310cdd37cf |
|
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Explicitly store the condition variable within switch statements, and make sure that this variable is destroyed when we exit the switch statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
01234bbc1cb94946df8046ad95e17537082b4f71 |
|
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce cleanup scopes for "if" statements in two places: - Outside the "if", to ensure that we destroy the condition variable at the end of the "if" statement rather than at the end of the block containing the "if" statement. - Inside the "then" and "else" branches, so that we emit then- or else-local cleanups at the end of the corresponding block when the block is not a compound statement. To make adding these new cleanup scopes easier (and since switch/do/while will all need the same treatment), added the CleanupScope RAII object to introduce a new cleanup scope and make sure it gets cleaned up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
8cfe5a784133d90bf329fd20801824a6f71bb8ca |
|
24-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Explicitly track the condition variable within an "if" statement, rather than burying it in a CXXConditionDeclExpr (that occassionally hides behind implicit conversions). Similar changes for switch, while, and do-while will follow, then the removal of CXXConditionDeclExpr. This commit is the canary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
444be7366d0a1e172c0290a1ea54c1cb16b5947c |
|
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Wherein the TargetInfo argument to Preprocessor is made 'const' and propogated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
23908b8a43adefd42b3635364cfab44de1064942 |
|
12-Nov-2009 |
Devang Patel <dpatel@apple.com> |
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
49c952f853fe2d15dd9c9ff2a29c696bd18fca13 |
|
06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
update comment, pointed out by Gabor git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
41a124aba77e07ab6263239bdb3df6f5feb34e13 |
|
06-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
indirectbr seems to work! Rip out the old code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d9becd1846e2c72bf6ad283faa1b048f33dd3afe |
|
29-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
Implement clang support for indirect branch and address of label using the new LLVM support for this. This is temporarily hiding behind horrible and ugly #ifdefs until the time when the optimizer is stable (hopefully a week or so). Until then, lets make it "opt in" :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3d00fdc82fd550ae4bfbb2e700a1fc85bbd6d6fd |
|
13-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
reimplement codegen for indirect goto with the following advantages: 1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bbd9fa4b4a0fea47f94ac3eb4eaf5cc8079defe1 |
|
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Add support to attach debug info to an instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
6815e941998659a55c20c147861b0f437928c3d8 |
|
27-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
CodeGen for try statements. (We just emit the body for now). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0032b2781b4deb131f8c9b7968f2030bf2489cdd |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
47a434ff3d49e7906eda88e8e8242e4297725b32 |
|
06-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fca9361839ecc53224c764517e62fc0e15166004 |
|
04-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Revert the fix for PR3800, it broke things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
26fb937145f32221bb8b4e1119b122396c2ac1ce |
|
02-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Remove old code that was causing the new test to fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5a23264452fbf8ad3c65e0869fa902f7a0e918a1 |
|
02-Aug-2009 |
Anders Carlsson <andersca@mac.com> |
Don't evaluate inout constraints twice. Fixes PR3800. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b3589f44c5d295cd41de2c83f3475116835eeebd |
|
31-Jul-2009 |
Mike Stump <mrs@apple.com> |
Canonicalize else spacing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4a28d5deeba33722aa009eab488591fb9055cc7e |
|
25-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
cd5e60e1d4093b9a757cc85e35fccc093f8f8527 |
|
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Detect when the current generation point is unreachable after emitting expressions. - This generally catches the important case of noreturn functions. - With the last two changes, we are down to 152 unreachable blocks emitted on 403.gcc, vs the 1805 we started with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
25b6ebf0f8c07514250ec76c987f84b6810d4d17 |
|
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix thinko. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d286f05f1234bac289173f0eed88d7ecbaea0099 |
|
19-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Avoid generation of dead code in a few more situations. - Emit variable declarations as "simple", we want to avoid forcing the creation of a dummy basic block, but still need to make the variable available for later use. - With that, we can now skip IRgen for other unreachable statements (which don't define a label). - Anders, I added two fixmes on calls to EmitVLASize, can you check them? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9cdd637312a5572287de0fb8637b252ee09cef10 |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d54b6ac2f4f6f0bd0076cbfa885b57277066f06c |
|
27-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Add IRGen support for return statements in functions with reference type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
49d1cd5a09ed3df353371fd7f206674a85e0fb45 |
|
27-May-2009 |
Mike Stump <mrs@apple.com> |
Fixup codegen for volatile structs in the trivial cases (a a=a and a=a=a). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72439 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
beaaccd8e2a8748f77b66e2b330fb9136937e14c |
|
21-May-2009 |
Jay Foad <jay.foad@gmail.com> |
Use v.data() instead of &v[0] when SmallVector v might be empty. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
dcd808c1f9ef7cdd9fb7779beec3f3872261f0a4 |
|
04-May-2009 |
Chris Lattner <sabre@nondot.org> |
"Fix" a problem with debug info in the presence of always_inline function calls. For a program like this: #include <stdio.h> static __inline__ __attribute__((always_inline)) int bar(int x) { return 4; } int main() { int X = bar(4); printf("%d\n", X); } clang was not outputing any debug info for the body of main(). This is because the backend is getting confused by the region_start/end that clang is emitting for block scopes. For now, just disable these (matching llvm-gcc), this stuff is in progress of rework anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b84e8a670ad1d00c0a34295c42ac700cdde04815 |
|
04-May-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unnecessary copy of constraint info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5c667608efe2a49727c996906b771853f694d246 |
|
04-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unnecessary push_back (at least, I think it's unnecessary); hopefully, this fixes PR4144 without any regressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0bdaa5b576237195a260d347f2646cf42ec7d745 |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
look at the right operand when increasing the size of an asm output, this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ebfc9857de58a326c84629915d9ffe3f36d8cc26 |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
don't shadow 'i' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a077b5c8631596f8d7a588933a9de5d08e9ba428 |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
add support for tying asm operands where the result is smaller than the input. This is part of PR3373. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ede9d900809c4fd0298d52f5a63088ecb8302275 |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
implement support for asm outputs targetting non-simple lvalue destinations like bitfields. incidentally llvm-gcc crashes on this sort of thing also. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4df4ee0ff6f804e9d3dd478712e3b5b20cd3bf2f |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
handle codegen of asms where a small input is tied to a large output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
481fef9e25128fe87b19e41c48f771ee20c33cbe |
|
03-May-2009 |
Chris Lattner <sabre@nondot.org> |
refactor some code to get the input/output constraint info before processing the outputs, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bad3a94d506874355fc15b336c6f0ed360e46a06 |
|
01-May-2009 |
Anders Carlsson <andersca@mac.com> |
Don't use indirect memory destinations for inline asm. Fixes 6841383. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2819fa85651526d59ade4fdc9da2cadd7b132973 |
|
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
pull operands names "[foo]" into ConstraintInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
432c86969eced2ce658b3f3f2aa7407c8864f21b |
|
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
pull the constraint string into the ConstraintInfo struct instead of passing it around in addition to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
44def070435a2b5d67f0534f7a3a85a7389d60f2 |
|
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
change TargetInfo::ConstraintInfo to be a struct that contains the enum along with some other data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
8a3e0b1b8222d52df3d42ca345dc48f991e1908a |
|
13-Apr-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Minor simplification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
aa5bd87f1fd5f9ca47924248817c89325759b30e |
|
01-Apr-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix a subtle bug where the cleanup scope entries had a dangling block reference - <rdar://problem/6732143> Crash when generating @synchronize for zero-cost exception - Thanks to Anders for helping track down the problem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
810f6d5d6223adaab0ccf0139f40de6484ad1bb5 |
|
13-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
introduce a new -fheinous-gnu-extensions flag that enables really really horrible extensions that are disabled by default but that can be accepted by -fheinous-gnu-extensions (but which always emit a warning when enabled). As our first instance of this, implement PR3788/PR3794, which allows non-lvalues in inline asms in contexts where lvalues are required. bleh. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fb5058ef67c054296c88db18ab1b3717845cb71d |
|
11-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add plumbing to report diagnostics back through sema for malformed asmstrings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
458cd9c8a79b25b87dcea43c9d97a4c59f194799 |
|
11-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
move the asm string analysis code out of codegen into common code where Sema can get to it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
88beebe6ecab1810c3f62f0b5f8be796855861cc |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Fix PR3682 by just disabling a broken assertion. This check should be done in sema, and is reflected by the existing PR3258. In the meantime, fix PR3682 by disabling a bogus assertion (which doesn't account for + operands). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
02af974dca0f855dc36d8a8c26bb87f373310815 |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
reduce duplication of parsing code between %0 and %x0 and add support for modifiers on named references, like %c[foo]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
10ca96ae9aed6906c3302403ef1a146a8d4c6b74 |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
move matching of named operands into AsmStmt class. At the same time handle + operands in operand counting, fixing asm.c:t7 to expand into $2 instead of $1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bb57265fdba1e8af05dd917b8bf243d49cfb3465 |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
reduce nesting, use memchr instead of explicit loop, eliminate a temporary std::string to fix a fixme. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
63c8b14ddc15147f443806408db6459183af26c1 |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Expand %= into ${:uid} so that the code generator emits a unique ID for the asm. This allows us to properly handle the case when an optimizer duplicates the asm, such as here: void bar() { int i; for (i = 0; i < 3; ++i) asm("foo %=" : : "r"(0)); } we now produce: _bar: xorl %eax, %eax ## InlineAsm Start foo 0 ## InlineAsm End ## InlineAsm Start foo 1 ## InlineAsm End ## InlineAsm Start foo 2 ## InlineAsm End ret instead of: _bar: xorl %eax, %eax ## InlineAsm Start foo 1 ## InlineAsm End ## InlineAsm Start foo 1 ## InlineAsm End ## InlineAsm Start foo 1 ## InlineAsm End ret This also fixes a fixme by eliminating a static. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
b327793860737d1c103a73aeda8057dd628a101d |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add some helper methods to AsmStmt and add some comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f1a08caedb52a3287d38dfff0ac6e1c0a6531c3e |
|
10-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
slightly simplify some code, pull the 'is simple asm' case up in ConvertAsmString and shrink it a bit. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
7d22bf00dbabca86ba791f56a99e006181fa22dd |
|
05-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
if we die in IR generation of a compound statement, include it in the stack trace, giving us stuff like: Stack dump: 0. Program arguments: clang t.c -emit-llvm 1. <eof> parser at end of file 2. t.c:1:5: LLVM IR generation of declaration 'a' 3. t.c:1:9: LLVM IR generation of compound statement ('{}') 4. t.c:2:3: LLVM IR generation of compound statement ('{}') Abort git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5512f28fa7b26e87e613dc1558b29b2a89647809 |
|
04-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
add a special case for codegen that improves the case where we have multiple sequential cases to a) not create tons of fall-through basic blocks and b) not recurse deeply. This fixes codegen on 100K deep cases, and improves codegen on moderate cases from this: switch i32 %tmp, label %sw.epilog [ i32 1000, label %sw.bb i32 1001, label %sw.bb1 i32 1002, label %sw.bb2 i32 1003, label %sw.bb3 i32 1004, label %sw.bb4 ... sw.bb: ; preds = %entry br label %sw.bb1 sw.bb1: ; preds = %entry, %sw.bb br label %sw.bb2 sw.bb2: ; preds = %entry, %sw.bb1 br label %sw.bb3 sw.bb3: ; preds = %entry, %sw.bb2 br label %sw.bb4 to: switch i32 %tmp, label %sw.epilog [ i32 1000, label %sw.bb i32 1001, label %sw.bb i32 1002, label %sw.bb i32 1003, label %sw.bb i32 1004, label %sw.bb sw.bb: ;; many preds git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bc0822bad87ac4d2dcac8e1b71960301656a2699 |
|
02-Mar-2009 |
Anders Carlsson <andersca@mac.com> |
inline asm calls should be nounwind. Chris, please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
66b41512466db9a4b2859db517692fb79dae449e |
|
22-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Make sure to reset the DidCallStackSave variable before emitting a compound statement. Fixes PR3649. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e896d98548b02223c7740d807a0aa6e20fba7079 |
|
13-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Add CodeGen support for the nodebug attribute. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
22ab8d86ec613ace6602b6de11fa9ccc08580f6b |
|
10-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Handle the case where EmitBlock might be called multiple times for the same block. Fixes PR3536. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
fa1f756f88f4e6f3da2673082fdc1e8f54bccd6f |
|
10-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Remove the last remnants of the Obj-C EH stack code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e4b6d342c29d5cb9d311756100df1603810fa892 |
|
10-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Start removing the old Obj-C EH stack now that the cleanup stack is used instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
82d8ef0be44ddba608c1ce5c8b6b48da83bc1821 |
|
09-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Replace a bunch of EmitBranch calls with EmitBranchThroughCleanup. No functionality change (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
7433189b6e9d6661a7edb80d73e43afc26456f3c |
|
09-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Save and restore the DidCallStackSave variable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
225b16dbaaca36aae6934fafd0ab718393f97019 |
|
08-Feb-2009 |
Mike Stump <mrs@apple.com> |
When we're at the stack depth we want, there isn't anything to do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ec9771d57f94cc204491b3174e88069d08cdd684 |
|
08-Feb-2009 |
Mike Stump <mrs@apple.com> |
Wire up break and continue processing to the new stack depth adjuster. If people could beat on it and let me know if there are any new semantics required by newer language standards or DRs or any little details I goofed on, I'd be happy to fix any issues found. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bd6fa3d032acd7eafc6c10827c41103df45beab7 |
|
08-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
When emitting blocks, keep track of which cleanup scope they have. Minor fixes and cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
c71c845fe77ee1f891d60232ec320912d88557ee |
|
08-Feb-2009 |
Anders Carlsson <andersca@mac.com> |
Add support for emitting cleanup blocks. Make EmitCompoundStatement emit cleanup blocks if necessary git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3e9da66ac7e88d64d30ee777588677320660cf84 |
|
08-Feb-2009 |
Mike Stump <mrs@apple.com> |
Ensure we track all the stack depths for all break and continue points correctly. This should lay the ground work to throw the big switch and start code gening break and continue in the presense of vlas. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
20926c6eaad539459925d857f64600cd4cc77e99 |
|
07-Feb-2009 |
Mike Stump <mrs@apple.com> |
Format for 80-cols. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
72cac2ccce8058833f56358e3391e28a8ddeeaa4 |
|
07-Feb-2009 |
Mike Stump <mrs@apple.com> |
Arrange to have the correct StackDepth for while statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
16b16206741f5139c4ad870632db8f9ea4c6c943 |
|
07-Feb-2009 |
Mike Stump <mrs@apple.com> |
Fit into 80-col. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
36a2ada69fdb457b0e46d0ef452c150b360d8888 |
|
07-Feb-2009 |
Mike Stump <mrs@apple.com> |
Fixup goto codegen in and around VLAs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
03eb543cf7ebee463b33b5802b83ac92c21770cf |
|
27-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
If an input constraint refers to an output constraint, it should have the same constraint info as the output constraint. Fixes PR3417 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
53637654287a2658fa0c9f67b305795743720936 |
|
21-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
silence a couple unused variable 'result' warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
300fb5d0ef7edc87f3fdba17fc8b1184013b35ae |
|
18-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
CG support for inline asm constraints with symbolic names. Fixes PR3345 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
42e1ee0702d8267d632df0fdb5c479a582877c6f |
|
18-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
Add sema support for symbolic names in inline asm statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
45b050e72d058131e6f169fe54888bb91a003fb5 |
|
18-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
Change TargetInfo::validateInputConstraint to take begin/end name iterators instead of the number of outputs. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ebaae2a3103b443d50444d335ab5ab0ff7680da2 |
|
12-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
Handle multi-value inputs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9f2505b934745b18d580ade4dac7b8b16952a30c |
|
11-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
More inline asm fixes git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
2763b3af0a527c3a63cb058b90c22db0b7bcf558 |
|
11-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
Handle readwrite constraints correctly git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
634717238844cf3f51039411be1b27fe1fac622e |
|
11-Jan-2009 |
Anders Carlsson <andersca@mac.com> |
Use a common function for emitting asm inputs and remove a FIXME git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ccf614c479ac93326a01e7b373b30759eed7807f |
|
21-Dec-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for PR3246: an empty clobber list is the empty string, not a null string. That said, we should probably try and track down the correct clobber lists for the targets that don't have them (PPC, ARM, and Sparc), so that we can generate correct code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
20c802bf305ea44eb36b6fc6ef3c16a0bfca9b66 |
|
21-Dec-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Extend the unsupported error to include break and continue, and fix a warning by using an unsigned index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
7e63b8527fa0b065802fc6cb8cb6124d7c23c4a2 |
|
20-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Check the entire StackSaveValues stack for VLAs when dealing with goto and return statements. Noticed by Eli Friedman. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
eb91f0ecb420f481811f8812ac4d39087e8dd754 |
|
20-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Add some ErrorUnsupported calls and turn on VLA codegen again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e21269bcb732afa70386fdd4c95d22bc2ed943b1 |
|
13-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Store the size of the EH stack inside each BreakContinue struct so we know when a break/continue won't cross a try block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
17d28a3e0b0efaba14534d0e6d6a307283d96b9f |
|
12-Dec-2008 |
Anders Carlsson <andersca@mac.com> |
Work in preparation for VLAs. Make sure to restore the stack if necessary (Saving the stack isn't implemented right now :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
51fe996231b1d7199f76e4005ff4c943d5deeecd |
|
22-Nov-2008 |
Anders Carlsson <andersca@mac.com> |
Use Expr::Evaluate for case statements. Fixes PR2525 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
10cac6f7115b59a466bb8d2d51cdddeb38aadc37 |
|
15-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Start implementing support for @synchonized with the darwin ObjC API. Patch by Fariborz! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
c22d665ede76f70228055d638a087f4bd438292d |
|
13-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Supply finished flag to EmitBlock for common statements which use landing pads. - Primarily a cleanliness issue instead of a performance issue (this eliminates all blocks w/o predecessors on 176.gcc/expr.c), but this also allows subsequent code to recognize it is unreachable and potentially avoid IRgen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9615ecb44f549ae9fa2b4db6ff46bc78befbf62c |
|
13-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Normalize many BasicBlock names. - Use dotted notation for blocks related to a particular statement type. - Use .end for landing pads. No functionality change in NDEBUG mode. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a0c21a8faa79e88ac432d116eca58f7a7217195d |
|
13-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add IsFinished arg to EmitBlock. - Indicates that caller is done with the block and it can be dropped if it has no predecessors. Useful for callers who need to make landing pads but which may not be reached. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
781d7ca9b2fd626ef34bdc3fe06765eeff7ab2bc |
|
13-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
For if blocks with no else, name the join block ifend instead of the more confusing ifelse. Use dotted names for if blocks (if.then vs ifthen). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0912425f79418a215c2fbd2d8fc9511244a4aa46 |
|
12-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
IRgen improvements on unreachable code: - Split out "simple" statements which can easily handle IR generation when there is no insert point. These are generally statements which start by emitting a new block or are only containers for other statements. - This fixes a regression in emitting dummy blocks, notably for case statements. - This also fixes spurious emission of a number of debug stoppoint intrinsic instructions. Remove unneeded sw.body block, just clear the insertion point. Lift out CodeGenFunction::EmitStopPoint which calls into the CGDebugInfo class when generating debug info. Normalize definitions of Emit{Break,Continue}Stmt and usage of ErrorUnsupported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
31a0984b5cb4af99d2407c0f25bf5af68df681c6 |
|
12-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Move EmitBranchOnBoolExpr and ConstantFoldsToSimpleInteger to CodeGenFunction.cpp. Change VisitConditionalOperator to use constant fold instead of codegen'ing a constant conditional. Change ForStmt to use EmitBranchOnBoolExpr, this shrinks expr.c very slightly to 40239 lines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9bc47e29dce8f095be7a6d07dbb02a5a7a112949 |
|
12-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Make emission of 'if' conditions much more sophisticated when we have a condition that is an &&/||. Before we used to compile things like this: int test() { if (x && y) foo(); else bar(); } into: %0 = load i32* @x ; <i32> [#uses=1] %1 = icmp ne i32 %0, 0 ; <i1> [#uses=1] br i1 %1, label %land_rhs, label %land_cont land_rhs: ; preds = %entry %2 = load i32* @y ; <i32> [#uses=1] %3 = icmp ne i32 %2, 0 ; <i1> [#uses=1] br label %land_cont land_cont: ; preds = %land_rhs, %entry %4 = phi i1 [ false, %entry ], [ %3, %land_rhs ] ; <i1> [#uses=1] br i1 %4, label %ifthen, label %ifelse ifthen: ; preds = %land_cont %call = call i32 (...)* @foo() ; <i32> [#uses=0] br label %ifend ifelse: ; preds = %land_cont %call1 = call i32 (...)* @bar() ; <i32> [#uses=0] br label %ifend ifend: ; preds = %ifelse, %ifthen Now we turn it into the much more svelte code: %0 = load i32* @x ; <i32> [#uses=1] %1 = icmp ne i32 %0, 0 ; <i1> [#uses=1] br i1 %1, label %land_lhs_true, label %ifelse land_lhs_true: ; preds = %entry %2 = load i32* @y ; <i32> [#uses=1] %3 = icmp ne i32 %2, 0 ; <i1> [#uses=1] br i1 %3, label %ifthen, label %ifelse ifthen: ; preds = %land_lhs_true %call = call i32 (...)* @foo() ; <i32> [#uses=0] br label %ifend ifelse: ; preds = %land_lhs_true, %entry %call1 = call i32 (...)* @bar() ; <i32> [#uses=0] br label %ifend ifend: ; preds = %ifelse, %ifthen Note the lack of a phi node. This shrinks the -O0 .ll file for 176.gcc/expr.c from 43176 to 40267 lines. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
746e03ed511664a1c781b209faaa3a66d4593480 |
|
12-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Clean up some code to use isZero instead of calling getZExtValue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a448fb2da03ece39978784793eea68760e8205a1 |
|
12-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Rework IRgen invariant w.r.t. current insert point. - EmitStmt is no longer required to finish with a current insertion point defined (i.e. it does not need to make dummy blocks). Instead, it can clear the insertion point in the builder which indicates that the current insertion point is unreachable. - CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint which respectively test if there is an insert point and ensure an insertion point exists (by making a dummy block). - Clearly mark functions in CodeGenFunction which can be called with no insertion point defined. Currently this is a limited set, and EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR. Remove EmitDummyBlock, which is no longer needed. Clients who haven't already cleared the insertion point (typically via EmitBranch) can do so by hand. Remove isDummyBlock, which has effectively been renamed to HaveInsertPoint. The main thrust of this change is that we no longer have create dummy blocks just to destroy them a short time later in EmitBlock in the common case that there is no unreachable code following something like a goto. Additionally, this means that we are not using the hokey condition in isDummyBlock that a block without a name is a dummy block. Guess how well that works when we never emit block names! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5e08ad3cc62ab94649959ae227a9a411a729bf49 |
|
11-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change EmitBranch to always clear the insert point to clarify irgen invariants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d57a871339c7c98d58d93108b806f59bdf4e13e2 |
|
11-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add CodeGenFunction::EmitBranch. - Emits an unconditional branch, with extra logic to avoid generating spurious branches out of dummy blocks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0946ccd1e58c1f1da31ddbca67c5b6301ac8b255 |
|
11-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
short circuit && and || when possible. This substantially reduces the size of the -O0 output on some cases. For example, on expr.c from 176.gcc, it shrinks the .ll file from 43164 to 42835 lines, and removed references to two external symbols. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
62b72f642207ba2ba433d686df924dc9594e9897 |
|
11-Nov-2008 |
Chris Lattner <sabre@nondot.org> |
Make codegen smart enough to not emit the dead side of an if whose condition is a constant. This shrinks -O0 codegen by quite a bit on some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
824e3bd76b2e32db2ec6e4d2d113413e518d1c63 |
|
11-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add CodeGenFunction::EmitDummyBlock for marking places where we make "dummy" blocks (blocks just used to make sure we have a place to dump code to). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
f84dcda7e2ab2f6d5be5a8c52d22ef4c442dd762 |
|
11-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Remove CodeGenFunction::StartBlock. - Was confusing and only used in one small part of the code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
55e874299f2ad827646a4ca9ea38c402aaeb38c9 |
|
11-Nov-2008 |
Daniel Dunbar <daniel@zuster.org> |
Centralize basic block creation in CodeGenFunction::createBasicBlock. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ce179ab4358c152164899c032302d8b0e81982b6 |
|
09-Nov-2008 |
Anders Carlsson <andersca@mac.com> |
Support named operands in inline asm statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
281f55c8c6aed79f1ac1c6ee848bd94ebd7f936f |
|
17-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Emit error unsupported when asm string conversion fails instead of assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
66031a5594bc9a7dc0dc5137c3e7955f835e4639 |
|
17-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change CGDebugInfo::setLocation to just ignore invalid locations. This simplifies clients. Also, add assert that RegionStack is empty when the CGDebugInfo is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3304e55f613ce34d9a14c3aaf06f5949408b3092 |
|
12-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
silence release-assert warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e4ea1f42c97a436df3e0ae8e129e6bc624ee6790 |
|
06-Oct-2008 |
Ted Kremenek <kremenek@apple.com> |
In EmitDeclStmt: use DeclStmt::const_decl_iterator instead of walking the scoped decl chain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
a4275d194b656867bdcdb725b2a7ba3251a1a638 |
|
02-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Emit error unsupported for break/continue/goto inside Obj-C exception handling blocks. - This has false positives, but at least prevents miscompiles. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
898d508d4c9e9d45914952473e39196b20830a9f |
|
30-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add infrastructure for proper @finally support. - Provides a basic primitive to jump to an arbitrary basic block, through the finally code. - Only used for return statements and rethrow currently. Still need to handle break, continue and goto. - Code still needs to be shuffled around to live elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
ad12b6d643aba6c36f5cec4c9beb4977a12eace4 |
|
28-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Skip redundant if. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
29e0bccf2bcce22b877f8b2ed173f564c116b97e |
|
24-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Refactor some CodeGen functionality: - Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset} - Factor EmitLValueForIvar out of EmitObjCIvarRefLValue. No non-error functionality change (some unsupported errors are degraded to asserts for the time being). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
dde0a94120915fa925d1ffcdb997c7b44dc9fa21 |
|
11-Sep-2008 |
Anders Carlsson <andersca@mac.com> |
Make sure to store the exception in the catch parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
1452f5599d4de1d97a71ad61786126b91da9da69 |
|
11-Sep-2008 |
Anders Carlsson <andersca@mac.com> |
Make sure to emit the catch parameter as well as the catch body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
5ca2084cf9b529563209429857f01fdae9dcdfa5 |
|
09-Sep-2008 |
Daniel Dunbar <daniel@zuster.org> |
Use a unified return block. - For the time being this means our emitted code is somewhat worse, especially for aggregates. This will be fixed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
64d5d6c5903157c521af496479d06dc26032d718 |
|
09-Sep-2008 |
Anders Carlsson <andersca@mac.com> |
Move handling of @try and @throw to the runtime class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3d8400d9a61aa4b63ff35e5cede405b32a41425e |
|
30-Aug-2008 |
Anders Carlsson <andersca@mac.com> |
Stub out CodeGenFunction::EmitObjCForCollectionStmt. Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
662174c82ef46b19a2329c7d37208e1d12dfb7b3 |
|
29-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Downgrade a number of FIXME asserts to ErrorUnsupported. - Notably VLAs git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0a04d77bde7e3a661c2b41b60630d125d09ed6ef |
|
23-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Implement Obj-C ivar references to aggregates. Implement Obj-C lvalue message sends (aggregate returns). Update several places to emit more precise ErrorUnsupported warnings for currently unimplemented Obj-C features (main missing chunks are property references, Obj-C exception handling, and the for ... in syntax). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
488e993a135ce700b982bf099c3d6b856301d642 |
|
16-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change WarnUnsupported to ErrorUnsupported (in name and in practice). - We are beyond the point where this shows up often and when it does generating miscompiled files is bad. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
acc5f3e42334525bf28c86471551f83dfce222d5 |
|
11-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
More #include cleaning - Kill unnecessary #includes in .cpp files. This is an automatic sweep so some things removed are actually used, but happen to be included by a previous header. I tried to get rid of the obvious examples and this was the easiest way to trim the #includes in one fell swoop. - We now return to regularly scheduled development. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
de7fb8413b13651fd85b7125d08b3c9ac2816d9d |
|
11-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
More #include cleaning - Remove internal uses of AST.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
0ffb125996336fc7602b162c0a9e392f1a93060f |
|
04-Aug-2008 |
Daniel Dunbar <daniel@zuster.org> |
Add CodeGen support for indirect goto. - Follows emission scheme used by llvm-gcc, i.e. invent an id for each label whose address is taken and replace each indirect goto by a switch to each possible target. - Currently we emit a switch for each indirect goto instead of merging them as llvm-gcc does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
91d723da7b68be5245c3ac58aa2a36d04658cfb8 |
|
26-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
implement codegen support for labels at the end of stmtexprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
345f7209692b116ca433a3196c1e3c998e0ffcde |
|
26-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
minor tidying, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
16f23570999cac1fa13597386938450843003840 |
|
25-Jul-2008 |
Daniel Dunbar <daniel@zuster.org> |
Rework codegen of case ranges - Fix multiple issues with the way case ranges were emitted, see test cases details about the specific issues. - The root issue was not being careful about how basic blocks were emitted which led to them being chained together incorrectly, resulting in improper control flow. - Fixes <rdar://problem/6098585> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
4efde8d2c10b091bc9588de18c2c71dca2979e49 |
|
24-Jul-2008 |
Daniel Dunbar <daniel@zuster.org> |
Fix EmitCaseStmtRange to ignore empty ranges - Also cleaned up emission slightly - Inspection of the code revealed several other bugs, however. Case ranges are not properly wired and can result in switch cases being dropped or even infinite loops. See: <rdar://problem/6098585> Completes: <rdar://problem/6094119> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
1e692ace08959399794363e77499b73da5494af9 |
|
14-Jun-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Basic support for volatile loads and stores. Stores the volatile qualifier in the lvalue, and changes lvalue loads/stores to honor the volatile flag. Places which need some further attention are marked with FIXMEs. Patch by Cédric Venet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
1c6a38bcea17801e9a4738753aee845381af2b6c |
|
25-May-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Generate subprogram debug info with -g. Also take care of freeing memory at the right places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d79a726dc3c8af61b486948c97a183c7fe5b0179 |
|
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Change uses of llvm::Type::isFirstClassType to use the new llvm::Type::isSingleValueType. Currently these two functions have the same behavior, but soon isFirstClassType will return true for struct and array types. Clang may some day want to use of isFirstClassType for some of these some day as an optimization, but it'll require some consideration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
3f2af1002249c8acc9ce17f1fc50324864feb8e1 |
|
22-May-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Make debugging information usable. This is barebones, but it makes -g actually work (instead of crashing llc), and there's enough info emitted to get line number information in gdb. This should hopefully be helpful for debugging non-working programs. I got rid of the begin/endregion calls because the implementation wasn't working; someone who knows the debugging info a bit better might try to add it. I really have no clue how a compiler is supposed to emit them. This commit shouldn't have any effect without -g. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
144ac61f9005a0da4327d4e62a4c453923b7bc0c |
|
22-May-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Minor refactoring: compute the return value separately from emitting the ret. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
d28a80d64616b66c91d28bb4c08ca2d8c594de4e |
|
12-May-2008 |
Eli Friedman <eli.friedman@gmail.com> |
Emit basic block for switch body; fixes PR2307. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
e8b9f5b8ea60983c4a74cb8b63879616b914b65a |
|
08-May-2008 |
Sanjiv Gupta <sanjiv.gupta@microchip.com> |
Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
984d0b414bc76d3530b9bc55a5a55834ba76c607 |
|
06-Apr-2008 |
Gabor Greif <ggreif@gmail.com> |
tracking API changes arising from r49277 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
9b2dc287177394a8f73833e2ad4f7ca8cd6f22bb |
|
04-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Since isComplexType() no longer returns true for _Complex integers, the code generator needs to call isAnyComplexType(). This fixes PR1960. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
391d77a26382dddf25da73e29fc1fa5aaaea4c6f |
|
31-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Add initial support for objc codegen for methods, ivars, and the etoile runtime, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|
bda0b626e74513950405c27525af87e214e605e2 |
|
16-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Make a major restructuring of the clang tree: introduce a top-level lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGStmt.cpp
|