- Jul 26, 2016
-
-
Adam Nemet authored
For example, stop expanding 'opt' in -passes='require<opt-remark-emit>'. llvm-svn: 276707
-
Michael Kuperstein authored
llvm-svn: 276703
-
Renato Golin authored
The saturation instructions appeared in v6T2, with DSP extensions, but they were being accepted / generated on any, with the new introduction of the saturation detection in the back-end. This commit restricts the usage to DSP-enable only cores. Fixes PR28607. llvm-svn: 276701
-
David Majnemer authored
This reverts commit r276698. Clang has tests which rely on the optimizer :( llvm-svn: 276700
-
David Majnemer authored
BitCasts of BitCasts can be folded away as can BitCasts which don't change the type of the operand. llvm-svn: 276698
-
- Jul 25, 2016
-
-
David Blaikie authored
llvm-svn: 276694
-
Simon Pilgrim authored
llvm-svn: 276692
-
Simon Pilgrim authored
llvm-svn: 276691
-
Tim Northover authored
This adds LLVM's 3 main cast instructions (inttoptr, ptrtoint, bitcast) to the IRTranslator. The first two are direct translations (with 2 MachineInstr types each). Since LLT discards information, a bitcast might become trivial and we emit a COPY in those cases instead. llvm-svn: 276690
-
Tim Northover authored
They're basically i64 for AArch64, but we'll leave them intact for stranger targets. Also add some tests for the (very few) other cases we can handle right now. llvm-svn: 276689
-
Michael Kuperstein authored
Differential Revision: https://reviews.llvm.org/D22703 llvm-svn: 276687
-
Kevin Enderby authored
I consulted with Lang Hames on this work, and the goal was to add a bit of "where" in the archive the error occurred along with what the error was. So this step changes ArchiveMemberHeader into a class with a pointer to the archive header and the parent archive. Which allows the methods in the ArchiveMemberHeader to determine which member the header is for to include that information in the error message. For this first step the "where" is just the offset to the member in the archive. The next step will be a new method on ArchiveMemberHeader to get the full name, if possible, to be use in the error message. Which will now be possible as ArchiveMemberHeader contains a pointer to the Archive with its string table and its size, etc. so the full name can be determined from the header if it is valid. Also this change adds the missing checks the archive header is actually contained in the buffer and is not truncated, as well as if the terminating characters are correct in the header. And changes one error message in Archive::Child::getNext() where the name or offset to member is now added. llvm-svn: 276686
-
Jordan Rose authored
MSVC won't provide the body of this move constructor and assignment operator, possibly because the copy constructor is banned. Just write it manually. llvm-svn: 276685
-
Jan Vesely authored
Differential revision: https://reviews.llvm.org/D22732 llvm-svn: 276682
-
Matt Arsenault authored
llvm-svn: 276681
-
Matt Arsenault authored
llvm-svn: 276680
-
Matt Arsenault authored
llvm-svn: 276679
-
Matt Arsenault authored
Fixes weird asymmetry with insertion llvm-svn: 276678
-
Matt Arsenault authored
llvm-svn: 276677
-
Evgeniy Stepanov authored
llvm-svn: 276676
-
Matt Arsenault authored
llvm-svn: 276675
-
Rong Xu authored
Pre-instrumentation inline (pre-inliner) greatly improves the IR instrumentation code performance, among other benefits. One issue of the pre-inliner is it can introduce CFG-mismatch for COMDAT functions. This is due to the fact that the same COMDAT function may have different early inline decisions across different modules -- that means different copies of COMDAT functions will have different CFG checksum. In this patch, we propose a partially renaming the COMDAT group and its member function/variable so we have different profile counter for each version. We will post-fix the COMDAT function and the group name with its FunctionHash. Differential Revision: http://reviews.llvm.org/D22600 llvm-svn: 276673
-
Michael Kuperstein authored
llvm-svn: 276672
-
Jordan Rose authored
This prevents StringSwitch from being used with 'auto', which is important because the inferred type is StringSwitch rather than the result type. This is a problem because StringSwitch stores addresses of temporary values rather than copying or moving the value into its own storage. This is a compromise that still allows wrapping StringSwitch in other temporary structures, which (unlike StringSwitch) may be non-trivial to set up and therefore want to at least be movable. (For an example, see QueryParser.cpp in clang-tools-extra.) Changing this uncovered the bug in PassBuilder, also in this patch. Clang doesn't seem to have any occurrences of the issue. Re-commit of r276652. llvm-svn: 276671
-
Daniel Berlin authored
llvm-svn: 276670
-
Zachary Turner authored
Differential Revision: https://reviews.llvm.org/D22769 llvm-svn: 276669
-
Michael Kuperstein authored
There didn't appear to be a good reason to use iplist in this case, a regular list of unique_ptr works just as well. Change made in preparation to a new PM port (since iplist is not moveable). llvm-svn: 276668
-
Justin Bogner authored
With in-tree builds we can get Output directories scattered among our tests. Recursing into those to find tests doesn't make sense. Thanks to nlewycky for noticing this! llvm-svn: 276667
-
Simon Pilgrim authored
Upper limit of what can be held in a <32 x i8> result llvm-svn: 276666
-
Daniel Berlin authored
llvm-svn: 276662
-
Jordan Rose authored
This reverts commit r276652. The clang-query tool is currently relying on this behavior. I'll try again later. llvm-svn: 276661
-
Daniel Berlin authored
This fixes GVNHoist's portion of PR28670. llvm-svn: 276658
-
Daniel Berlin authored
llvm-svn: 276657
-
Joel Jones authored
Some targets, notably AArch64 for ILP32, have different relocation encodings based upon the ABI. This is an enabling change, so a future patch can use the ABIName from MCTargetOptions to chose which relocations to use. Tested using check-llvm. The corresponding change to clang is in: http://reviews.llvm.org/D16538 Patch by: Joel Jones Differential Revision: https://reviews.llvm.org/D16213 llvm-svn: 276654
-
Jordan Rose authored
...but most importantly, it cannot be used well with 'auto', because the inferred type is StringSwitch rather than the result type. This is a problem because StringSwitch stores addresses of temporary values rather than copying or moving the value into its own storage. Changing this uncovered the bug in PassBuilder, also in this patch. Clang doesn't seem to have any occurrences of the issue. llvm-svn: 276652
-
Elena Demikhovsky authored
It failed with assertion before this patch. Differential Revision: https://reviews.llvm.org/D22735 llvm-svn: 276648
-
Wei Mi authored
llvm-svn: 276644
-
Krzysztof Parzyszek authored
llvm-svn: 276638
-
Sam Parker authored
Added thumb targets and dataflow checks to the longMAC test. Differential Revision: https://reviews.llvm.org/D22684 llvm-svn: 276629
-
Simon Dardis authored
Avoid MipsAnalyzeImmediate usage if the constant fits in an 32-bit integer. This allows us to generate the same instructions for the materialization of the same constants regardless the width of their type. Patch by: Vasileios Kalintiris Contributions by: Simon Dardis Reviewers: Daniel Sanders Differential Review: https://reviews.llvm.org/D21689 llvm-svn: 276628
-