| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
brought into 'clang' namespace by clang/Basic/LLVM.h
llvm-svn: 172323
|
|
|
|
|
|
|
| |
Decl is a VarDecl.
Part of rdar://12991541
llvm-svn: 172120
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 169237
|
|
|
|
| |
llvm-svn: 167777
|
|
|
|
| |
llvm-svn: 167761
|
|
|
|
|
|
|
|
|
| |
The 'a', 'c', and 'd' constraints on i386 mean a 32-bit register. We cannot
place a 64-bit value into the 32-bit register. Error out instead of causing the
compiler to spew general badness.
<rdar://problem/12415959>
llvm-svn: 167717
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This code checks the ASM string to see if the output size is able to fit within
the variable specified as the output. For instance, scalar-to-vector conversions
may not really work. It's on by default, but can be turned off with a flag if
you think you know what you're doing.
This is placed under a flag ('-Wasm-operand-widths') and flag group ('-Wasm').
<rdar://problem/12284092>
llvm-svn: 166737
|
|
|
|
| |
llvm-svn: 166723
|
|
|
|
| |
llvm-svn: 166655
|
|
|
|
|
|
|
| |
modifiers. (From an idea by Eric...)
<rdar://problem/12284092>
llvm-svn: 166647
|
|
|
|
| |
llvm-svn: 166489
|
|
|
|
| |
llvm-svn: 166463
|
|
|
|
| |
llvm-svn: 166377
|
|
|
|
| |
llvm-svn: 166310
|
|
|
|
| |
llvm-svn: 166293
|
|
|
|
|
|
| |
which will be used by the asm matcher in the near future.
llvm-svn: 166221
|
|
|
|
|
|
|
| |
*NamedDecl. In turn, build the expressions after we're finished parsing the
asm. This avoids a crasher if the lookup fails.
llvm-svn: 166213
|
|
|
|
|
|
|
| |
layer. Use the new ParseMSInlineAsm() API and add an implementation of the
MCAsmParserSemaCallback interface.
llvm-svn: 166184
|
|
|
|
|
|
| |
front-end and the AsmParser. No functional change intended.
llvm-svn: 166063
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-The front-end now builds a single assembly string and feeds it to the
AsmParser. The front-end iterates on a per statement basis by calling the
ParseStatement() function. Please note, the calling of ParseStatement() and
and any notion of MCAsmParsedOperands will be sunk into the MC layer in the
near future. I plan to expose more basic APIs such as getClobbers, etc.
-The enumeration of the AsmString expressions have been reworked to use SMLocs
rather than assembly Pieces, which were being parsed in the front-end.
-The test case, t8(), was modified due to r129223. I'll have to find a way to
work around things such as these.
Sorry for the large commit, but breaking this in multiple smaller commits proved
too irritating.
llvm-svn: 165957
|
|
|
|
| |
llvm-svn: 165859
|
|
|
|
| |
llvm-svn: 165851
|
|
|
|
| |
llvm-svn: 165834
|
|
|
|
|
|
| |
reimplemented in the AsmParser where it belongs.
llvm-svn: 165825
|
|
|
|
| |
llvm-svn: 165793
|
|
|
|
| |
llvm-svn: 165772
|
|
|
|
|
|
| |
reimplemented in the AsmParser where it belongs.
llvm-svn: 165752
|
|
|
|
|
|
|
|
|
| |
now unused static helper function.
The test case needs to be remove temporarily until I can better filter memory
operands that aren't actual variable reference.
llvm-svn: 165751
|
|
|
|
| |
llvm-svn: 165070
|
|
|
|
|
|
|
| |
A Sema lookup is used to determine the size of the variable, which is in turn
used during wildcard matching.
llvm-svn: 165058
|
|
|
|
|
|
|
|
| |
pointer size
directives (e.g., dword ptr [eax]).
llvm-svn: 165031
|
|
|
|
| |
llvm-svn: 165025
|
|
|
|
|
|
| |
Rework the logic to account for the fact that we no longer create a MCInst.
llvm-svn: 164980
|
|
|
|
|
|
|
|
| |
If an MS-style inline asm is matched to multiple instructions, e.g., with a
a WAIT-prefix, then we need to examine the operands of the last instruction
instruction, not the prefix instruction.
llvm-svn: 164608
|
|
|
|
| |
llvm-svn: 164568
|
|
|
|
| |
llvm-svn: 164551
|
|
|
|
| |
llvm-svn: 164550
|
|
|
|
| |
llvm-svn: 164421
|
|
|
|
| |
llvm-svn: 163758
|
|
|
|
|
|
|
|
|
|
|
|
| |
more robust way to address a few FIXMEs.
The initial implementation, r163342, built the IR asm string and then tried to
patch things on the fly without enough context. Specifically, it didn't skip
mnemonics nor did it track with assembly instruction an expression was related
to. The new implementation patches the operands and then builds the final
IR string.
llvm-svn: 163756
|
|
|
|
|
|
|
|
|
|
|
| |
MCOperands then iterate over all of then when computing clobbers, inputs and
outputs.
On x86 the 1-to-many mapping is a memory operand that includes a BaseReg(reg),
MemScale(imm), MemIndexReg(reg), an Expr(MCExpr or imm) and a MemSegReg(reg).
Invalid register (Op.getReg() == 0) are not considered when computing clobber.
llvm-svn: 163728
|
|
|
|
|
|
| |
definitions, not memory definitions.
llvm-svn: 163666
|
|
|
|
| |
llvm-svn: 163665
|
|
|
|
|
|
| |
inputs and outputs.
llvm-svn: 163657
|
|
|
|
| |
llvm-svn: 163581
|
|
|
|
|
|
|
| |
handle. Otherwise, the AsmParser will explode if we try to generate an
object files.
llvm-svn: 163345
|
|
|
|
|
|
|
| |
and output expressions much like that in GNU-style inline assembly. Output
expressions are first. Do this for MS-style inline asms.
llvm-svn: 163342
|
|
|
|
| |
llvm-svn: 163188
|
|
|
|
|
|
|
| |
assume that if the 1st operands is an expression and the instruction mayStore,
then it is a memory definition.
llvm-svn: 163144
|
|
|
|
| |
llvm-svn: 163142
|