- Jul 18, 2014
-
-
David Peixotto authored
On AArch64 the pseudo instruction ldr <reg>, =... supports both 32-bit and 64-bit constants. Add support for 64 bit constants for the pools to support the pseudo instruction fully. Changes the AArch64 ldr-pseudo tests to use 32-bit registers and adds tests with 64-bit registers. Patch by Janne Grunau! Differential Revision: http://reviews.llvm.org/D4279 llvm-svn: 213387
-
Hal Finkel authored
Because references must be initialized using some evaluated expression, they must point to something, and a callee can assume the reference parameter is dereferenceable. Taking advantage of a new attribute just added to LLVM, mark them as such. Because dereferenceability in addrspace(0) implies nonnull in the backend, we don't need both attributes. However, we need to know the size of the object to use the dereferenceable attribute, so for incomplete types we still emit only nonnull. llvm-svn: 213386
-
Hal Finkel authored
This attribute indicates that the parameter or return pointer is dereferenceable. Practically speaking, loads from such a pointer within the associated byte range are safe to speculatively execute. Such pointer parameters are common in source languages (C++ references, for example). llvm-svn: 213385
-
Dmitry Vyukov authored
llvm-svn: 213384
-
Daniel Sanders authored
llvm-svn: 213383
-
Dmitry Vyukov authored
llvm-svn: 213382
-
Daniel Sanders authored
This is a prerequisite for checking for 'mti' and 'img' in a consistent way in clang. Previously 'img' could use Triple::getVendor() but 'mti' could only use Triple::getVendorName(). llvm-svn: 213381
-
Arnaud A. de Grandmaison authored
This reverts commit dbf785a6432f78a8ec229665876647c4cc610d3d, while I qm investigating a buildbot failure. llvm-svn: 213380
-
Arnaud A. de Grandmaison authored
This will give more information to the optimizers so that they can reuse stack slots. llvm-svn: 213379
-
Tim Northover authored
Because i16 is illegal, there's no native DAG method to represent a bitcast to or from an f16 type. This meant LLVM was inserting a stack store/load pair which is really not ideal. llvm-svn: 213378
-
Tim Northover authored
llvm-svn: 213377
-
Tim Northover authored
llvm-svn: 213376
-
Tim Northover authored
llvm-svn: 213375
-
Tim Northover authored
llvm-svn: 213374
-
Tim Northover authored
llvm-svn: 213373
-
Tim Northover authored
Actual support for softening f16 operations is still limited, and can be added when it's needed. But Soften is much closer to being a useful thing to try than keeping it Legal when no registers can actually hold such values. Longer term, we probably want something between Soften and Promote semantics for most targets, it'll be more efficient to promote the 4 basic operations to f32 than libcall them. llvm-svn: 213372
-
Renato Golin authored
llvm-svn: 213371
-
Viktor Kutuzov authored
Differential Revision: http://reviews.llvm.org/D4560 llvm-svn: 213370
-
Tilmann Scheller authored
The post-indexed instructions were missing the constraint, causing unpredictable STR instructions to be emitted. The earlyclobber constraint on the pre-indexed STR instructions is not strictly necessary, as the instruction selection for pre-indexed STR instructions goes through an additional layer of pseudo instructions which have the constraint defined, however it doesn't hurt to specify the constraint directly on the pre-indexed instructions as well, since at some point someone might create instances of them programmatically and then the constraint is definitely needed. This fixes PR20323. llvm-svn: 213369
-
Viktor Kutuzov authored
Differential Revision: http://reviews.llvm.org/D4422 llvm-svn: 213368
-
Renato Golin authored
Re-commit of a patch to rework the triple parsing on ARM to a more sane model. Patch by Gabor Ballabas. llvm-svn: 213367
-
Joerg Sonnenberger authored
llvm-svn: 213366
-
Arthur Marble authored
to the user if they try to pass those optimizations. The revision for this patch is here: http://reviews.llvm.org/D4474. This patch will fix many errors in the rebuild of Debian with clang. Here is a link to the page for unknown arguments: http://clang.debian.net/status.php?version=3.4.2&key=UNKNOWN_ARG llvm-svn: 213365
-
Yi Kong authored
Add an additional test to ensure that someone doesn't accidentally change the definitions such that they can take a non-constant value. llvm-svn: 213364
-
Alexey Bataev authored
llvm-svn: 213363
-
Artyom Skrobov authored
llvm-svn: 213362
-
Artyom Skrobov authored
llvm-svn: 213361
-
Alexey Bataev authored
llvm-svn: 213360
-
Oliver Stannard authored
r211898 introduced a regression where a large struct, which would normally be passed ByVal, was causing padding to be inserted to prevent the backend from using some GPRs, in order to follow the AAPCS. However, the type of the argument was not being set correctly, so the backend cannot align 8-byte aligned struct types on the stack. The fix is to not insert the padding arguments when the argument is being passed ByVal. llvm-svn: 213359
-
Tim Northover authored
This test is actually going in the opposite direction to what the filename and function name suggested. llvm-svn: 213358
-
Tim Northover authored
Unfortunately, we don't seem to have a direct truncation, but the extension can be legally split into two operations so we should support that. llvm-svn: 213357
-
Tim Northover authored
Clang may well start emitting these soon, and while it may not be directly relevant for OpenCL or GLSL, the instructions were just sitting there waiting to be used. llvm-svn: 213356
-
Alexey Bataev authored
llvm-svn: 213355
-
Zachary Turner authored
We were hardcoding "python" as the command to run the swig wrapper scripts. We should be using PYTHON_EXECUTABLE instead. llvm-svn: 213354
-
Kevin Qin authored
1. Revert "Add default feature for CPUs on AArch64 target in Clang" at r210625. Then, all enabled feature will by passed explicitly by -target-feature in -cc1 option. 2. Get "-mfpu" deprecated. 3. Implement support of "-march". Usage is: -march=armv8-a+[no]feature For instance, "-march=armv8-a+neon+crc+nocrypto". Here "armv8-a" is necessary, and CPU names are not acceptable. Candidate features are fp, neon, crc and crypto. Where conflicting feature modifiers are specified, the right-most feature is used. 4. Implement support of "-mtune". Usage is: -march=CPU_NAME For instance, "-march=cortex-a57". This option will ONLY get micro-architectural feature enabled specifying to target CPU, like "+zcm" and "+zcz" for cyclone. Any architectural features WON'T be modified. 5. Change usage of "-mcpu" to "-mcpu=CPU_NAME+[no]feature", which is an alias to "-march={feature of CPU_NAME}+[no]feature" and "-mtune=CPU_NAME" together. Where this option is used in conjunction with -march or -mtune, those options take precedence over the appropriate part of this option. llvm-svn: 213353
-
Hal Finkel authored
Currently the only kind of integer IR attributes that we have are alignment attributes, and so the attribute kind that takes an integer parameter is called AlignAttr, but that will change (we'll soon be adding a dereferenceable attribute that also takes an integer value). Accordingly, rename AlignAttribute to IntAttribute (class names, enums, etc.). No functionality change intended. llvm-svn: 213352
-
Matt Arsenault authored
The test is just copied from X86, and I don't know of a better way to test it. llvm-svn: 213351
-
David Majnemer authored
The parsing code for 'availability' wasn't prepared for string literals like "a" L"b" showing up. Error if this occurs. llvm-svn: 213350
-
Richard Smith authored
llvm-svn: 213349
-
Richard Smith authored
* A submodule of module A is imported into module B * Another submodule of module A that is not imported into B exports a macro * Some submodule of module B also exports a definition of the macro, and happens to be the first submodule of B that imports module A. In this case, we would incorrectly determine that A's macro redefines B's macro, and so we don't need to re-export B's macro at all. This happens with the 'assert' macro in an LLVM self-host. =( llvm-svn: 213348
-