summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Rename a helper function, NFC.Vedant Kumar2017-02-233-6/+7
| | | | llvm-svn: 295918
* Test if we can use raw strings on all platforms compiling LLVM.Matthias Braun2017-02-231-126/+126
| | | | llvm-svn: 295917
* Explicitly state the behavior of inbounds with a null pointer.Eli Friedman2017-02-231-2/+4
| | | | | | | | | See https://llvm.org/bugs/show_bug.cgi?id=31439; this reflects LLVM's behavior in practice, and should be compatible with C/C++ rules. Differential Revision: https://reviews.llvm.org/D28026 llvm-svn: 295916
* Reverted 295897 pending refinements and fixes for green-dragon.Sean Callanan2017-02-233-80/+31
| | | | llvm-svn: 295915
* AMDGPU: Replace disabled exp inputs with undefMatt Arsenault2017-02-232-0/+130
| | | | llvm-svn: 295914
* Fix /msvclto.Rui Ueyama2017-02-234-42/+51
| | | | | | | Previously, bitcode files in library paths were passed to the MSVC linker. This patch strips them. llvm-svn: 295913
* AMDGPU: Add another BFE patternMatt Arsenault2017-02-234-39/+215
| | | | | | | This is the pattern that falls out of the instruction's definition if offset == 0. llvm-svn: 295912
* [ODRHash] Add IdentiferInfo and FieldDecl support.Richard Trieu2017-02-234-5/+98
| | | | | | | | | IdentifierInfo is hashed based on the stored string. FieldDecl versus other Decl is now detected, as well as differently named fields. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295911
* Reduce templating a bit. NFC.Rafael Espindola2017-02-233-6/+5
| | | | llvm-svn: 295909
* AMDGPU: Use clamp with f64Matt Arsenault2017-02-225-13/+29
| | | | llvm-svn: 295908
* Fixed errors in AllocatedBlock:Greg Clayton2017-02-221-4/+9
| | | | | | | | | - Allow zero byte size request for memory and ensure it gets a unique address - Exit the free block loop when we find an appropriate free block <rdar://problem/30644888> llvm-svn: 295907
* Revert r295868 because it breaks a different SLP lit test.Michael Kuperstein2017-02-222-24/+17
| | | | llvm-svn: 295906
* AMDGPU: Fold FP clamp as modifier bitMatt Arsenault2017-02-229-15/+420
| | | | | | | | | | | The manual is unclear on the details of this. It's not clear to me if denormals are not allowed with clamp, or if that is only omod. Not allowing denorms for fp16 or fp64 isn't useful so I also question if that is really a restriction. Same with whether this is valid without IEEE mode enabled. llvm-svn: 295905
* AMDGPU : Update TrapCode based on Trap Handler ABI.Wei Ding2017-02-225-15/+19
| | | | | | Differential Revision: http://reviews.llvm.org/D30232 llvm-svn: 295904
* [ObjC][Modules] Don't perform property lookup in hidden class extensionsAlex Lorenz2017-02-223-2/+13
| | | | | | rdar://30603803 llvm-svn: 295903
* [libFuzzer] Update traces hooks test after r293741Justin Bogner2017-02-221-5/+3
| | | | | | This test now passes on darwin. llvm-svn: 295902
* ELF: Simplify the thinlto.ll test and verify that importing is working ↵Peter Collingbourne2017-02-221-5/+4
| | | | | | correctly. llvm-svn: 295901
* [libFuzzer] Mark a test that infinite loops as unsupportedJustin Bogner2017-02-223-5/+11
| | | | | | | We need to investigate this, but for now it just causes too much headache when trying to run these tests. llvm-svn: 295900
* AMDGPU: Add replacement bfe intrinsicsMatt Arsenault2017-02-226-1/+1343
| | | | llvm-svn: 295899
* [InstCombine] don't try SimplifyDemandedInstructionBits from add/sub because ↵Sanjay Patel2017-02-221-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it's slow and unlikely to succeed Notably, no regression tests change when we remove these calls, and these are expensive calls. The motivation comes from the general acknowledgement that the compiler is getting slower: http://lists.llvm.org/pipermail/llvm-dev/2017-January/109188.html http://lists.llvm.org/pipermail/llvm-dev/2016-December/108279.html And specifically the test case attached to PR32037: https://bugs.llvm.org//show_bug.cgi?id=32037 Profiling the middle-end (opt) part of the compile: $ ./opt -O2 row_common.bc -o /dev/null ...visitAdd and visitSub are near the top of the instcombine list, and the calls to SimplifyDemandedInstructionBits() are high within each of those. Those calls account for 1%+ of the opt time in either debug or release profiles. And that's the rough win I see from this patch when testing opt built release from r295864 on an iMac with Haswell 4GHz (model 4790K). It seems unlikely that we'd be able to eliminate add/sub or change their operands given that add/sub normally affect all bits, and the PR32037 example shows no IR difference after this change using -O2. Also worth noting - the code comment in visitAdd: // This handles stuff like (X & 254)+1 -> (X&254)|1 ...isn't true. That transform is handled later with a call to haveNoCommonBitsSet(). Differential Revision: https://reviews.llvm.org/D30270 llvm-svn: 295898
* Changed builld-llvm.py to use .json filesSean Callanan2017-02-223-31/+80
| | | | | | | | | | | | | | LLDB has many branches in a variety of repositories. The build-script.py file is subtly different for each set. This is unnecessary and causes merge headaches. This patch makes build-llvm.py consult a directory full of .json files, each one of which matches a particular branch using a regular expression. Differential revision: https://reviews.llvm.org/D30275 llvm-svn: 295897
* [OpenMP] Missing virtual destructor in KMPAffinityGeorge Rokos2017-02-221-0/+2
| | | | | | | | Added virtual destructor in a class containing virtual functions. Differential Revision: https://reviews.llvm.org/D30271 llvm-svn: 295896
* [AVR] Disable integrated assembler for a few testsDylan McKay2017-02-223-3/+3
| | | | | | Fixes the build. llvm-svn: 295895
* [CodeGen] Add param info for ctors with ABI args.George Burgess IV2017-02-222-1/+26
| | | | | | This fixes a few assertion failures. Please see the added test case. llvm-svn: 295894
* [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-02-2213-282/+380
| | | | | | other minor fixes (NFC). llvm-svn: 295893
* [Hexagon] Implement @llvm.readcyclecounter()Krzysztof Parzyszek2017-02-227-9/+44
| | | | llvm-svn: 295892
* AMDGPU: Don't add emergency stack slot if all spills are SGPR->VGPRMatt Arsenault2017-02-222-39/+57
| | | | | | | | | This should avoid reporting any stack needs to be allocated in the case where no stack is truly used. An unused stack slot is still left around in other cases where there are real stack objects but no spilling occurs. llvm-svn: 295891
* [ODRHash] static_cast and Stmt hashing.Richard Trieu2017-02-226-91/+366
| | | | | | | | | | Add support for static_cast in classes. Add pointer-independent profiling for Stmt's, sharing most of the logic with Stmt::Profile. This is the first of the deep sub-Decl diffing for error messages. Differential Revision: https://reviews.llvm.org/D21675 llvm-svn: 295890
* PredicateInfo: Support switch statementsDaniel Berlin2017-02-227-81/+306
| | | | | | | | | | | | | | | | | | | Summary: Depends on D29606 and D29682 Makes us pass GVN's edge.ll (we also will pass a few other testcases they just need cleaning up). Thoughts on the Predicate* hiearchy of classes especially welcome :) (it's not clear to me how best to organize it, and currently, the getBlock* seems ... uglier than maybe wasting a field somewhere or something). Reviewers: davide Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29747 llvm-svn: 295889
* Add pair conversion functions to BasicBlockEdge.Daniel Berlin2017-02-221-0/+4
| | | | llvm-svn: 295888
* Move updating functions to MemorySSAUpdater.Daniel Berlin2017-02-227-231/+220
| | | | | | | | | | | | | | | Add updater to passes that now need it. Move around code in MemorySSA to expose needed functions. Summary: Mostly cleanup Reviewers: george.burgess.iv Subscribers: llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D30221 llvm-svn: 295887
* PR32034: Evaluate _Atomic(T) in-place when T is a class or array type.Richard Smith2017-02-222-12/+46
| | | | | | | | This is necessary in order for the evaluation of an _Atomic initializer for those types to have an associated object, which an initializer for class or array type needs. llvm-svn: 295886
* [LV] Update floating-point induction test checks (NFC)Matthew Simpson2017-02-221-57/+129
| | | | llvm-svn: 295885
* [LSR] Canonicalize formula and put recursive Reg related with current loop ↵Wei Mi2017-02-222-39/+148
| | | | | | | | | | | | | | | | in ScaledReg. After rL294814, LSR formula can have multiple SCEVAddRecExprs inside of its BaseRegs. Previous canonicalization will swap the first SCEVAddRecExpr in BaseRegs with ScaledReg. But now we want to swap the SCEVAddRecExpr Reg related with current loop with ScaledReg. Otherwise, we may generate code like this: RegA + lsr.iv + RegB, where loop invariant parts RegA and RegB are not grouped together and cannot be promoted outside of loop. With this patch, it will ensure lsr.iv to be generated later in the expr: RegA + RegB + lsr.iv, so that RegA + RegB can be promoted outside of loop. Differential Revision: https://reviews.llvm.org/D26781 llvm-svn: 295884
* [RDF] Support for partial structural aliases in RegisterAggrKrzysztof Parzyszek2017-02-222-61/+67
| | | | llvm-svn: 295883
* Fix header documentation.Greg Clayton2017-02-221-2/+2
| | | | llvm-svn: 295882
* Fix header documentation.Greg Clayton2017-02-221-5/+3
| | | | llvm-svn: 295881
* [Support] Re-add the special OSX flags on mmap.Zachary Turner2017-02-221-0/+19
| | | | | | | | The problem appears to be that these flags can only be used when mapping a file for read-only, not for readwrite. So we do that here. llvm-svn: 295880
* [Hexagon] Add intrinsics for masked vector storesKrzysztof Parzyszek2017-02-224-0/+146
| | | | | | Patch by Harsha Jagasia. llvm-svn: 295879
* AMDGPU: Don't look at chain users when adjusting writemaskMatt Arsenault2017-02-222-0/+90
| | | | | | Fixes not adjusting using new intrinsics with chains. llvm-svn: 295878
* AMDGPU: Always allocate emergency stack slot at offset 0Matt Arsenault2017-02-2219-174/+222
| | | | | | | | | This allows us to ensure that 0 is never a valid pointer to a user object, and ensures that the offset is always legal without needing a register to access it. This comes at the cost of usable offsets and wasted stack space. llvm-svn: 295877
* Add a comment about thread safety.Rui Ueyama2017-02-221-0/+4
| | | | llvm-svn: 295876
* [WebAssembly] Update llvm-readobj tests for switch to version 0x1Derek Schuff2017-02-222-1/+1
| | | | llvm-svn: 295875
* AMDGPU: Add fmed3 half builtinMatt Arsenault2017-02-226-2/+34
| | | | llvm-svn: 295874
* AMDGPU: Change exp with compr bit printingMatt Arsenault2017-02-222-29/+55
| | | | llvm-svn: 295873
* stop using associative comdats for SEH filter functionsBob Haarman2017-02-222-14/+3
| | | | | | | | | | | | Summary: We implement structured exception handling (SEH) by generating filter functions for functions that use exceptions. Currently, we use associative comdats to ensure that the filter functions are preserved if and only if the functions we generated them for are preserved. This can lead to problems when generating COFF objects - LLVM may decide to inline a function that uses SEH and remove its body, at which point we will end up with a comdat that COFF cannot represent. To avoid running into that situation, this change makes us not use associative comdats for SEH filter functions. We can still get the benefits we used the associative comdats for: we will always preserve filter functions we use, and dead stripping can eliminate the ones we don't use. Reviewers: rnk, pcc, ruiu Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D30117 llvm-svn: 295872
* Revert "AMDGPU : Update TrapCode based on Trap Handler ABI."Wei Ding2017-02-225-18/+14
| | | | | | This reverts commit r295867. llvm-svn: 295871
* [CodeGen] Note where we add ABI-specific args in ctors. NFC.George Burgess IV2017-02-224-44/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | Meta: The ultimate goal is to teach ExtParameterInfo about pass_object_size attributes. This is necessary for that, since our ExtParameterInfo is a bit buggy in C++. I plan to actually make use of this Prefix/Suffix info in the near future, but I like small single-purpose changes. Especially when those changes are hard to actually test... At the moment, some of our C++-specific CodeGen pretends that ABIs can only add arguments to the beginning of a function call. This isn't quite correct: args can be appended to the end, as well. It hasn't mattered much until now, since we seem to only use this "number of arguments added" data when calculating the ExtParameterInfo to use when making a CGFunctionInfo. Said ExtParameterInfo is currently only used for ParameterABIs (Swift) and ns_consumed (ObjC). So, this patch allows ABIs to indicate whether args they added were at the beginning or end of an argument list. We can use this information to emit ExtParameterInfos more correctly, though like said, that bit is coming soon. No tests since this is theoretically a nop. llvm-svn: 295870
* [WebAssembly] Update llvm-objdump tests for the new wasm version number.Dan Gohman2017-02-222-1/+1
| | | | llvm-svn: 295869
* [SLP] Fix for PR32036: Vectorized horizontal reduction returning wrong resultAlexey Bataev2017-02-222-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If the same value is used several times as an extra value, SLP vectorizer takes it into account only once instead of actual number of using. For example: ``` int val = 1; for (int y = 0; y < 8; y++) { for (int x = 0; x < 8; x++) { val = val + input[y * 8 + x] + 3; } } ``` We have 2 extra rguments: `1` - initial value of horizontal reduction and `3`, which is added 8*8 times to the reduction. Before the patch we added `1` to the reduction value and added once `3`, though it must be added 64 times. Reviewers: mkuper, mzolotukhin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30262 llvm-svn: 295868
OpenPOWER on IntegriCloud