| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
namespace. Use the attribute's enum value instead. No functionality change
intended.
llvm-svn: 165611
|
| |
|
|
| |
llvm-svn: 165395
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 164589
|
| |
|
|
| |
llvm-svn: 163232
|
| |
|
|
| |
llvm-svn: 163178
|
| |
|
|
|
|
|
| |
implementation does not co-exist well with how the sideeffect and alignstack
attributes are handled.
llvm-svn: 163173
|
| |
|
|
| |
llvm-svn: 163161
|
| |
|
|
| |
llvm-svn: 163149
|
| |
|
|
|
|
| |
Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
llvm-svn: 163083
|
| |
|
|
| |
llvm-svn: 162796
|
| |
|
|
|
|
|
|
| |
AsmStmts. This function is only used by GCCAsmStmts, however. Constraints need
to be properly computed before MSAsmStmts can use EmitAsmStmt. No functional
change intended.
llvm-svn: 162776
|
| |
|
|
|
|
| |
More work towards unifying asm stmt codegen.
llvm-svn: 162712
|
| |
|
|
|
|
| |
change intended.
llvm-svn: 162710
|
| |
|
|
|
|
|
| |
coding standards. Also, add stub for MSAsmStmt class as part of unifying
codegen logic for AsmStmts.
llvm-svn: 162696
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 162632
|
| |
|
|
|
|
|
|
|
| |
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>
llvm-svn: 162602
|
| |
|
|
| |
llvm-svn: 162575
|
| |
|
|
| |
llvm-svn: 162568
|
| |
|
|
|
|
| |
ms-style inline asms.
llvm-svn: 162463
|
| |
|
|
|
|
|
| |
The parser still can't handle all cases, so fall back to emitting a simple
MSAsmStmt if we get into trouble.
llvm-svn: 162382
|
| |
|
|
|
|
|
| |
This is a reapplication of r161914 now that the scoping issue has been resolved
in r161966.
llvm-svn: 161967
|
| |
|
|
| |
llvm-svn: 161931
|
| |
|
|
| |
llvm-svn: 161914
|
| |
|
|
| |
llvm-svn: 161642
|
| |
|
|
|
|
| |
only machine specific clobbers are modeled.
llvm-svn: 161524
|
| |
|
|
|
|
| |
APSInt::isSameValue() when comparing different sized APSInt's.
llvm-svn: 160641
|
| |
|
|
| |
llvm-svn: 160580
|
| |
|
|
|
|
|
| |
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.
llvm-svn: 158833
|
| |
|
|
| |
llvm-svn: 158830
|
| |
|
|
|
|
| |
assembly is completely untested and unsupported.
llvm-svn: 158329
|
| |
|
|
| |
llvm-svn: 158325
|
| |
|
|
| |
llvm-svn: 155931
|
| |
|
|
|
|
|
|
|
| |
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!
llvm-svn: 154723
|
| |
|
|
|
|
|
|
|
| |
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
llvm-svn: 154420
|
| |
|
|
| |
llvm-svn: 154384
|
| |
|
|
| |
llvm-svn: 154383
|
| |
|
|
|
|
| |
testers.
llvm-svn: 153660
|
| |
|
|
|
|
|
| |
a complete object, the memcpy needs to use the data size of
the structure instead of its sizeof() value. Fixes PR12204.
llvm-svn: 153613
|
| |
|
|
|
|
|
| |
cast the value to x86_mmx. This gives the ASM string the correct call signature.
<rdar://problem/10919182>
llvm-svn: 153290
|
| |
|
|
|
|
| |
storage class, the asm name doesn't specify a register. PR12244.
llvm-svn: 152873
|
| |
|
|
|
|
|
|
|
|
| |
(Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
|
| |
|
|
| |
llvm-svn: 151216
|
| |
|
|
|
|
| |
CodeGenModule.
llvm-svn: 149943
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 149482
|
| |
|
|
| |
llvm-svn: 148361
|
| |
|
|
|
|
| |
patch (slightly revised) by Aaron Ballman.
llvm-svn: 148359
|
| |
|
|
|
|
|
| |
statement which has an unscoped case inside it.
Patch by Aaron Ballman
llvm-svn: 148243
|
| |
|
|
|
|
| |
review comment.
llvm-svn: 145741
|
| |
|
|
|
|
| |
I'll be introducing uses of the specified alignment soon.
llvm-svn: 145736
|
| |
|
|
|
|
|
|
|
|
| |
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".
llvm-svn: 142901
|