summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] AVX512: Move compressed displacement logic to TDAdam Nemet2014-07-172-0/+34
| | | | | | | | | | | | | | | This does not actually move the logic yet but reimplements it in the Tablegen language. Then asserts that the new implementation results in the same value. The next patch will remove the assert and the temporary use of the TSFlags and remove the C++ implementation. The formula requires a limited form of the logical left and right operators. I implemented these with the bit-extract/insert operator (i.e. blah{bits}). No functional change. llvm-svn: 213278
* [TableGen] Allow shift operators to take bits<n>Adam Nemet2014-07-173-2/+20
| | | | | | | | | | | | | | | Convert the operand to int if possible, i.e. if the value is properly initialized. (I suppose there is further room for improvement here to also peform the shift if the uninitialized bits are shifted out.) With this little change we can now compute the scaling factor for compressed displacement with pure tablegen code in the X86 backend. This is useful because both the X86-disassembler-specific part of tablegen and the assembler need this and TD is the natural sharing place. The patch also adds the missing documentation for the shift and add operator. llvm-svn: 213277
* [NVPTX] Add missing .v4 qualifier on vector store instructionJustin Holewinski2014-07-172-1/+13
| | | | llvm-svn: 213276
* MC: correct DWARF header for PE/COFF assembly inputSaleem Abdulrasool2014-07-172-4/+27
| | | | | | | | | | | | | | The header contains an offset to the DWARF abbreviations for the CU. The offset must be section relative for COFF and absolute for others. The non-assembly code path for the DWARF header generation already had the correct emission for the headers. This corrects just the assembly path. Due to the invalid relocation, processing of the debug information would halt previously on the first assembly input as the associated abbreviations would be out of range as they would have the location increased by image base and the section offset. This address PR20332. llvm-svn: 213275
* MC: fix MCAsmInfo usage for windows-itaniumSaleem Abdulrasool2014-07-172-1/+8
| | | | | | Windows itanium uses the GNUCOFF assmebly format, not ELF. llvm-svn: 213274
* MC: collapse emission of producerSaleem Abdulrasool2014-07-171-7/+3
| | | | | | | | Rather than use three EmitBytes, concatenate the string at compile time, constructing a single StringRef and emitting the data in one shot. This also creates nicer assembly output. NFC. llvm-svn: 213273
* [Refactor] Move code out of the IslAst headerJohannes Doerfert2014-07-173-45/+74
| | | | | | | | | | | | Offer the static functions to extract information out of an IslAst for node as members of IslAstInfo not as top level entities. + Refactor common code + Add isParallel and isReductionParallel + Rename IslAstUser to IslAstUserPayload to make it clear this is just a (or the) payload struct. llvm-svn: 213272
* Fix bug #20335 - memory leak when move-constructing a string with unequal ↵Marshall Clow2014-07-172-14/+26
| | | | | | allocator. Thanks to Thomas Koeppe for the report llvm-svn: 213269
* [NVPTX] Flag surface/texture query instructions with IsTexSurfQueryJustin Holewinski2014-07-172-0/+109
| | | | | | | Also, add some tests to make sure we can handle surface/texture queries on both Fermi and Kepler+. llvm-svn: 213268
* Handle __assume in the VoidExprEvaluatorHal Finkel2014-07-172-0/+13
| | | | | | | | This is a follow-up to an IRC conversation with Richard last night; __assume does not evaluate its argument, and so the argument should not contribute to whether (__assume(e), constant) can be used where a constant is required. llvm-svn: 213267
* Add an __assume side-effects warningHal Finkel2014-07-174-0/+31
| | | | | | | | | | | | In MS-compatibility mode, we support the __assume builtin. The __assume builtin does not evaluate its arguments, and we should issue a warning if __assume is provided with an argument with side effects (because these effects will be discarded). This is similar in spirit to the warnings issued by other compilers (Intel Diagnostic 2261, MS Compiler Warning C4557). llvm-svn: 213266
* Using a std::string instead of a StringRef because the Default case ↵Aaron Ballman2014-07-171-6/+6
| | | | | | | | synthesizes a temporary std::string from a Twine. Assigning that into a StringRef causes the StringRef to refer to a temporary, and bad things happen. This fixes a failing test case on Windows. llvm-svn: 213265
* [asan] Remove leftover debug printf.Evgeniy Stepanov2014-07-171-1/+0
| | | | llvm-svn: 213264
* [asan] Fix malloc interception on Android L Preview.Evgeniy Stepanov2014-07-171-39/+61
| | | | | | | | Format of __libc_malloc_dispatch has changed in Android L. While we are moving towards a solution that does not depend on bionic internals, here is something to support both K* and L releases. llvm-svn: 213263
* [OPENMP] Initial parsing and sema analysis of 'mergeable' clause.Alexey Bataev2014-07-1716-8/+102
| | | | llvm-svn: 213262
* ARM: Add ACLE memory barrier intrinsic mappingYi Kong2014-07-172-2/+31
| | | | llvm-svn: 213261
* Revert "Handle diagnostic warnings in Frontend diagnostic handler."Alp Toker2014-07-173-31/+12
| | | | | | | | | | | This commit is missing tests and there are a few points that need to be addressed before a new user-facing option can be added: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140714/110198.html This reverts commit r213112. llvm-svn: 213260
* Fixing the objc_runtine_name documentation so that the code block is ↵Aaron Ballman2014-07-171-11/+11
| | | | | | properly generated. llvm-svn: 213259
* clang-format: Fix parsing of conditional expressions.Daniel Jasper2014-07-172-1/+6
| | | | | | | | | | | | | | | Before: aaaaaa = aaaaaaaaaaaa ? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaaaaaaaa; After: aaaaaa = aaaaaaaaaaaa ? aaaaaaaaaa ? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaaaaaaaaaaaaaaaaaa; llvm-svn: 213258
* [OPENMP] Initial support for parsing and sema analysis of 'untied' clause.Alexey Bataev2014-07-1716-7/+97
| | | | llvm-svn: 213257
* [NVPTX] Add more surface/texture intrinsics, including CUDA unified texture ↵Justin Holewinski2014-07-1714-854/+8425
| | | | | | | | | | | fetch This also uses TSFlags to mark machine instructions that are surface/texture accesses, as well as the vector width for surface operations. This is used to simplify some of the switch statements that need to detect surface/texture instructions llvm-svn: 213256
* Upstream an MS inline assembly test from Mozilla's inline assembly codeEhsan Akhgari2014-07-171-0/+61
| | | | | | | | | | | | | | | Summary: I'm planning on upstreaming some test cases for the inline assembly usage in the Mozilla code base. A lot of these test cases test the recent fixes to this code. Reviewers: rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4508 llvm-svn: 213255
* ARM: support direct f16 <-> f64 conversionsTim Northover2014-07-173-7/+60
| | | | | | ARMv8 has instructions to handle it, otherwise a libcall is needed. llvm-svn: 213254
* [TABLEGEN] Do not crash on intrinsics with names longer than 40 charactersJustin Holewinski2014-07-172-2/+35
| | | | | | Differential Revision: http://reviews.llvm.org/D4537 llvm-svn: 213253
* CodeGen: generate single libcall for fptrunc -> f16 operations.Tim Northover2014-07-177-20/+47
| | | | | | | | | | | | Previously we asserted on this code. Currently compiler-rt doesn't actually implement any of these new libcalls, but external help is pretty much the only viable option for LLVM. I've followed the much more generic "__truncST2" naming, as opposed to the odd name for f32 -> f16 truncation. This can obviously be changed later, or overridden by any targets that need to. llvm-svn: 213252
* X86: support double extension of f16 type.Tim Northover2014-07-172-1/+19
| | | | | | | | | | | x86 has no native ability to extend an f16 to f64, but the same result is obtained if we expand it into two separate extensions: f16 -> f32 -> f64. Unfortunately the same is not true for truncate, so that still results in a compilation failure. llvm-svn: 213251
* Port memory barriers intrinsics to AArch64Yi Kong2014-07-174-1/+29
| | | | | | | | | | | | | Memory barrier __builtin_arm_[dmb, dsb, isb] intrinsics are required to implement their corresponding ACLE and MSVC intrinsics. This patch ports ARM dmb, dsb, isb intrinsic to AArch64. Requires LLVM r213247. Differential Revision: http://reviews.llvm.org/D4521 llvm-svn: 213250
* IR: update Clang to use polymorphic __fp16 conversion intrinsics.Tim Northover2014-07-172-137/+144
| | | | | | There should be no change in semantics at this stage. llvm-svn: 213249
* CodeGen: extend f16 conversions to permit types > float.Tim Northover2014-07-1723-115/+140
| | | | | | | | | | | | | | | | | | | This makes the two intrinsics @llvm.convert.from.f16 and @llvm.convert.to.f16 accept types other than simple "float". This is only strictly needed for the truncate operation, since otherwise double rounding occurs and there's no way to represent the strict IEEE conversion. However, for symmetry we allow larger types in the extend too. During legalization, we can expand an "fp16_to_double" operation into two extends for convenience, but abort when the truncate isn't legal. A new libcall is probably needed here. Even after this commit, various target tweaks are needed to actually use the extended intrinsics. I've put these into separate commits for clarity, so there are no actual tests of f64 conversion here. llvm-svn: 213248
* Port memory barriers intrinsics to AArch64Yi Kong2014-07-174-6/+86
| | | | | | | | | | | Memory barrier __builtin_arm_[dmb, dsb, isb] intrinsics are required to implement their corresponding ACLE and MSVC intrinsics. This patch ports ARM dmb, dsb, isb intrinsic to AArch64. Differential Revision: http://reviews.llvm.org/D4520 llvm-svn: 213247
* [mips] .reginfo is 8 byte aligned on N32.Daniel Sanders2014-07-172-2/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D4540 llvm-svn: 213246
* Make the diagnostic message more complete to check the check name.Alexander Kornienko2014-07-171-1/+1
| | | | llvm-svn: 213245
* [mips] Correct ELF e_flags for the N32 ABI when using a mips-* triple rather ↵Daniel Sanders2014-07-172-21/+18
| | | | | | | | | | | | | | | | | | | than a mips64-* triple Summary: Generally speaking, mips-* vs mips64-* should not be used to make decisions about the content or format of the ELF. This should be based on the ABI and CPU in use. For example, `mips-linux-gnu-clang -mips64r2 -mabi=64` should produce an ELF64 as should `mips64-linux-gnu-clang -mabi=64`. Conversely, `mips64-linux-gnu-clang -mabi=n32` should produce an ELF32 as should `mips-linux-gnu-clang -mips64r2 -mabi=n32`. This patch fixes the e_flags but leaves the ELF32 vs ELF64 issue for now since there is no apparent way to base this decision on the ABI and CPU. Differential Revision: http://reviews.llvm.org/D4539 llvm-svn: 213244
* [mips] Correct .MIPS.abiflags for -mfpxx on MIPS32r6Daniel Sanders2014-07-173-7/+18
| | | | | | | | | | | Summary: The cpr1_size field describes the minimum register width to run the program rather than the size of the registers on the target. MIPS32r6 was acting as if -mfp64 has been given because it starts off with 64-bit FPU registers. Differential Revision: http://reviews.llvm.org/D4538 llvm-svn: 213243
* [mips] Fix ELF e_flags related to -mabicalls and -mplt.Daniel Sanders2014-07-1710-53/+59
| | | | | | | | | | | | | | Summary: These options are not implemented yet but we act as if they are always given. The integrated assembler is driven by the clang driver so the e_flag test cases should match the e_flags emitted by GCC+GAS rather than GAS by itself. Differential Revision: http://reviews.llvm.org/D4536 llvm-svn: 213242
* [mips] Pass the ABI to the integrated assembler and add tests the existing ↵Daniel Sanders2014-07-172-0/+218
| | | | | | | | | | | | | | | | | arguments. Summary: With this patch (and a corresponding LLVM patch), assembling an empty file with GCC and Clang -fintegrated-as produce near identical objects. The remaining differences are: * GCC/GAS produce objects have a .pdr section * GCC/GAS produce objects have a .gnu.attributes section Other differences are insignificant such as precise file offsets and the order of strings in the string table. Differential Revision: http://reviews.llvm.org/D4531 llvm-svn: 213241
* Fix the prefix for arm64 tripleYi Kong2014-07-171-3/+2
| | | | | | | | | | | | Triple.cpp still returns "arm64" as prefix for arm64 triple, causing Clang not being able to select the correct GCCBuiltin IR. This patch changes the value to correct prefix "aarch64". Regression test will be added in the coming patch. Differential Revision: http://reviews.llvm.org/D4516 llvm-svn: 213240
* [msan] Avoid redundant origin stores.Evgeniy Stepanov2014-07-172-1/+22
| | | | | | | | | | | | | Origin is meaningless for fully initialized values. Avoid storing origin for function arguments that are known to be always initialized (i.e. shadow is a compile-time null constant). This is not about correctness, but purely an optimization. Seems to affect compilation time of blacklisted functions significantly. llvm-svn: 213239
* [clang-tidy] MemsetZeroLenghtChecker: Don't crash trying to evaluate ↵Benjamin Kramer2014-07-172-4/+10
| | | | | | dependent values. llvm-svn: 213238
* [OPENMP] Parsing/Sema analysis of directive 'master'Alexander Musman2014-07-1726-10/+554
| | | | llvm-svn: 213237
* Consistency on the tab/spaceSylvestre Ledru2014-07-171-18/+18
| | | | llvm-svn: 213236
* Fix Bug 14061 - scan-build crashes during postprocessing if BUGFILE no ↵Sylvestre Ledru2014-07-171-0/+4
| | | | | | | | | | longer exists Experienced with Thunderbird build Patch by Matti Niemenmaa llvm-svn: 213235
* [clang-tidy] Provide links to the google style guide for checks derived from it.Benjamin Kramer2014-07-174-0/+4
| | | | llvm-svn: 213233
* [OPENMP] Initial parsing and sema analysis for 'final' clause.Alexey Bataev2014-07-1716-12/+212
| | | | llvm-svn: 213232
* Move ashr optimization from InstCombineShift to InstSimplify.Suyog Sarda2014-07-174-13/+15
| | | | | | | | | Refactor code, no functionality change, test case moved from instcombine to instsimplify. Differential Revision: http://reviews.llvm.org/D4102 llvm-svn: 213231
* Use range forMatt Arsenault2014-07-171-6/+4
| | | | llvm-svn: 213230
* R600: Short circuit alloca check if address space isn't private.Matt Arsenault2014-07-171-1/+1
| | | | | | | Skip calling GetUnderlyingObject in cases where it obviously isn't from an alloca. This should only be a compile time improvement. llvm-svn: 213229
* Fix Typo (first commit to test commit access)Suyog Sarda2014-07-171-1/+1
| | | | llvm-svn: 213228
* [lit] Add --show-unsupported flag to LITEric Fiselier2014-07-172-4/+7
| | | | llvm-svn: 213227
* [libcxx] Add <experimental/utility> header for LFTS. Eric Fiselier2014-07-176-1/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds the `<experimental/utility>` header as specified in the latest draft of the library fundamentals TS. `<experimental/utility>` only contains `class erased_type`. This patch also updates the documentation to list the `erased_type` class as "initial implementation complete". Test Plan: Three test cases where added: 1. Test that `_LIBCPP_VERSION` is defined. 2. Test that `<utility>` has been included. 3. Test that `erased_type` is in the correct namespace and is constexpr default constructible. Reviewers: mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4510 llvm-svn: 213226
OpenPOWER on IntegriCloud