| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 362410
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 954ec09aed4f2be04bb5f4e10dbb4ea8bd19ef9a.
Reverting due to test failures as requested by Jennifer Yu.
Conflicts:
clang/test/CodeGen/asm-goto.c
llvm-svn: 362106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Syntax:
asm [volatile] goto ( AssemblerTemplate
:
: InputOperands
: Clobbers
: GotoLabels)
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
New llvm IR is "callbr" for inline asm goto instead "call" for inline asm
For:
asm goto("testl %0, %0; jne %l1;" :: "r"(cond)::label_true, loop);
IR:
callbr void asm sideeffect "testl $0, $0; jne ${1:l};", "r,X,X,~{dirflag},~{fpsr},~{flags}"(i32 %0, i8* blockaddress(@foo, %label_true), i8* blockaddress(@foo, %loop)) #1
to label %asm.fallthrough [label %label_true, label %loop], !srcloc !3
asm.fallthrough:
Compiler need to generate:
1> a dummy constarint 'X' for each label.
2> an unique fallthrough label for each asm goto stmt " asm.fallthrough%number".
Diagnostic
1> duplicate asm operand name are used in output, input and label.
2> goto out of scope.
llvm-svn: 362045
|
|
|
|
|
|
| |
LLVM the consecutive '%' modifiers are redundant, skip them.
llvm-svn: 225602
|
|
|
|
|
|
| |
LLVM the consecutive '&' modifiers are redundant, skip them.
llvm-svn: 225601
|
|
|
|
|
|
|
|
|
|
|
| |
An array showing up in an inline assembly input is accepted in ICC and
GCC 4.8
This fixes PR20201.
Differential Revision: http://reviews.llvm.org/D4382
llvm-svn: 212954
|
|
|
|
| |
llvm-svn: 166924
|
|
|
|
| |
llvm-svn: 161642
|
|
|
|
|
|
|
|
|
| |
and update the Sema testcase with a register that we won't hit for a while
I hope.
Fixes rdar://10510405
llvm-svn: 145671
|
|
|
|
| |
llvm-svn: 145670
|
|
|
|
| |
llvm-svn: 145669
|
|
|
|
|
|
|
| |
instruction is tied to an output operand which is a pointer, and
the input operand is narrower than the output operand.
llvm-svn: 136438
|
|
|
|
|
|
| |
to avoid extraneous \n's.
llvm-svn: 135862
|
|
|
|
|
|
|
|
| |
extra register.
Part of PR10299 and rdar://9740322
llvm-svn: 134657
|
|
|
|
|
|
|
| |
some bugs in setting allowsRegister on the ones there.
8348447.
llvm-svn: 111980
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 102188
|
|
|
|
| |
llvm-svn: 100449
|
|
|
|
|
|
| |
'%t' file was left around on my disk. doh.
llvm-svn: 97699
|
|
|
|
|
|
| |
XFAIL and already tracked in bugzilla.
llvm-svn: 97671
|
|
|
|
| |
llvm-svn: 97669
|
|
|
|
|
|
|
|
|
| |
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
|
|
|
|
|
|
| |
- 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious.
llvm-svn: 86430
|
|
|
|
|
|
| |
previously we only recognized it on inputs.
llvm-svn: 83939
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
|
|
| |
- This is just to normalize, these will go away soon hopefully.
Added all the missing '&&'s that have crept in. :)
llvm-svn: 77062
|
|
|
|
| |
llvm-svn: 72110
|
|
|
|
|
|
| |
this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20
llvm-svn: 70685
|
|
|
|
|
|
| |
from the asm string, but reject references to the smaller one.
llvm-svn: 70679
|
|
|
|
|
|
| |
the input. This is part of PR3373.
llvm-svn: 70677
|
|
|
|
| |
llvm-svn: 70676
|
|
|
|
|
|
| |
like bitfields. incidentally llvm-gcc crashes on this sort of thing also. :)
llvm-svn: 70675
|
|
|
|
| |
llvm-svn: 70672
|
|
|
|
|
|
| |
operand. This matches llvm-gcc and fixes PR3908.
llvm-svn: 68371
|
|
|
|
|
|
| |
Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602
|
|
|
|
|
|
|
|
| |
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).
llvm-svn: 66533
|
|
|
|
|
|
| |
add support for modifiers on named references, like %c[foo].
llvm-svn: 66532
|
|
|
|
|
|
|
| |
time handle + operands in operand counting, fixing asm.c:t7 to
expand into $2 instead of $1.
llvm-svn: 66531
|
|
|
|
|
|
| |
Fixes PR3641.
llvm-svn: 65256
|
|
|
|
|
|
| |
same constraint info as the output constraint. Fixes PR3417
llvm-svn: 63127
|
|
|
|
| |
llvm-svn: 62069
|
|
|
|
| |
llvm-svn: 62049
|
|
llvm-svn: 62043
|