| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
| |
|
|
|
|
|
| |
Eli discovered that __noop's sema behavior also needs some love. I filed
PR14081 for that and intend to improve it.
llvm-svn: 165886
|
| |
|
|
|
|
|
| |
from a floating-point type where the source value is not in the range of
representable values of the destination type.
llvm-svn: 165843
|
| |
|
|
|
|
| |
reimplemented in the AsmParser where it belongs.
llvm-svn: 165825
|
| |
|
|
| |
llvm-svn: 165819
|
| |
|
|
| |
llvm-svn: 165818
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For 64-bit PowerPC SVR4, an aggregate containing only one
floating-point field (float, double, or long double) must be passed in
a register as though just that field were present. This patch
addresses the issue during Clang code generation by specifying in the
ABIArgInfo for the argument that the underlying type is passed
directly in a register. The included test case verifies flat and
nested structs for the three data types.
llvm-svn: 165816
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
with x86/ARM architecture
llvm-svn: 165722
|
| |
|
|
|
|
|
|
|
| |
Support the following intrinsics:
_mm_cvtph_ps, _mm256_cvtph_ps, _mm_cvtps_ph, _mm256_cvtps_ph
rdar://12407875
llvm-svn: 165685
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issue arises when coercing to/from types of different sizes. We need
to be certain that the allocation on either end has sufficient room for
the coerced type. When it doesn't, we need to make room, copy across,
and then proceed. PR11905 handled the case of storing function arguments
back into allocas in the function prolog, this patch handles the case of
setting up the function arguments in a call expression.
This is actually significantly simpler than the fix for PR11905. It ends
up being a trivial change to create a temporary alloca when the source
is too small and memcpy across. This should preserve the compile-time
fast-isel benefits of doing gep+load sequences and avoiding FCAs.
Reviewed by Benjamin and Evgeniy (who fixed PR11905).
llvm-svn: 165615
|
| |
|
|
|
|
| |
non-positive value.
llvm-svn: 165583
|
| |
|
|
| |
llvm-svn: 165581
|
| |
|
|
|
|
|
| |
I think our general framework for parser pragmas needs a bit more work,
but I'm not planning on working on it at the moment.
llvm-svn: 165558
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang itself. This dates back to clang's early days and while it looks like
some of it is still used (for kext for example), other parts are probably dead.
Remove the -ccc-clang-archs option and associated code. I don't think there
is any remaining setup where clang doesn't support an architecture but it can
expect an working gcc cross compiler to be available.
A nice side effect is that tests no longer need to differentiate architectures
that are included in production builds of clang and those that are not.
llvm-svn: 165545
|
| |
|
|
|
|
| |
of the checks fails.
llvm-svn: 165536
|
| |
|
|
|
|
|
| |
GCC has always supported this on PowerPC and 4.8 supports it on all platforms,
so it's a good idea to expose it in clang too. LLVM supports this on all targets.
llvm-svn: 165362
|
| |
|
|
| |
llvm-svn: 165347
|
| |
|
|
| |
llvm-svn: 165345
|
| |
|
|
| |
llvm-svn: 165343
|
| |
|
|
| |
llvm-svn: 165342
|
| |
|
|
| |
llvm-svn: 165329
|
| |
|
|
| |
llvm-svn: 165325
|
| |
|
|
| |
llvm-svn: 165276
|
| |
|
|
|
|
|
|
| |
- outside C++, return undef (behavior is not undefined unless the value is used)
- in C++, with -fcatch-undefined-behavior, perform an appropriate trap
- in C++, produce an 'unreachable' (behavior is undefined immediately)
llvm-svn: 165273
|
| |
|
|
| |
llvm-svn: 165247
|
| |
|
|
|
|
|
|
|
| |
64-bit PPC SVR4 ABI.
The test verifies passing of structures, items with 16-byte alignment, and
small items that are passed right-justified in the parameter save area slot.
llvm-svn: 165245
|
| |
|
|
| |
llvm-svn: 165231
|
| |
|
|
| |
llvm-svn: 165196
|
| |
|
|
|
|
|
| |
mess by handling all pragmas which the parser touches uniformly.
<rdar://problem/12248901>, etc.
llvm-svn: 165195
|
| |
|
|
| |
llvm-svn: 165175
|
| |
|
|
|
|
| |
and by specifying a target.
llvm-svn: 165130
|
| |
|
|
|
|
|
|
|
|
| |
fast div/rem instruction (for Intel Atom).
Test case for llvm commit 165126.
Patch by Tyler Nowicki.
llvm-svn: 165129
|
| |
|
|
| |
llvm-svn: 165118
|
| |
|
|
|
|
| |
Part of PR14005.
llvm-svn: 165117
|
| |
|
|
| |
llvm-svn: 165045
|
| |
|
|
| |
llvm-svn: 165024
|
| |
|
|
|
|
|
|
| |
is allowed or ignored with warning. This allows for correct name mangling for x64 targets on Windows, which in turn allows for linking against the Win32 APIs.
Fixes PR13782
llvm-svn: 165015
|
| |
|
|
|
|
|
|
| |
Clang will now honor the FP_CONTRACT pragma and emit LLVM
fmuladd intrinsics for expressions of the form A * B + C (when they occur in a
single statement).
llvm-svn: 164989
|
| |
|
|
|
|
|
| |
Also move one of them from grep to FileCheck.
Patch from Joey Gouly <joey.gouly@arm.com>!
llvm-svn: 164929
|
| |
|
|
| |
llvm-svn: 164928
|
| |
|
|
| |
llvm-svn: 164879
|
| |
|
|
|
|
| |
struct assignment.
llvm-svn: 164853
|
| |
|
|
|
|
| |
Joey Gouly.
llvm-svn: 164775
|
| |
|
|
|
|
|
| |
Found with
find test -type f | xargs grep RUN: | grep '%clang' | grep -iv '%s' | grep -v '%t' | grep -v '\\$'
llvm-svn: 164678
|
| |
|
|
| |
llvm-svn: 163804
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 163751
|
| |
|
|
| |
llvm-svn: 163737
|