summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for editor placeholders to ClangAlex Lorenz2017-04-1916-5/+172
| | | | | | | | | | | | | | | | | | | | | This commit teaches Clang to recognize editor placeholders that are produced when an IDE like Xcode inserts a code-completion result that includes a placeholder. Now when the lexer sees a placeholder token, it emits an 'editor placeholder in source file' error and creates an identifier token that represents the placeholder. The parser/sema can now recognize the placeholders and can suppress the diagnostics related to the placeholders. This ensures that live issues in an IDE like Xcode won't get spurious diagnostics related to placeholders. This commit also adds a new compiler option named '-fallow-editor-placeholders' that silences the 'editor placeholder in source file' error. This is useful for an IDE like Xcode as we don't want to display those errors in live issues. rdar://31581400 Differential Revision: https://reviews.llvm.org/D32081 llvm-svn: 300667
* [GlobalISel][X86] Split select tests. NFC.Igor Breger2017-04-197-444/+455
| | | | llvm-svn: 300666
* [ARM] GlobalISel: Add support for G_MULDiana Picus2017-04-197-2/+338
| | | | | | | | Support G_MUL, very similar to G_ADD and G_SUB. The only difference is in the instruction selector, where we have to select either MUL or MULv5 depending on the target. llvm-svn: 300665
* [GlobalISel] Support vector-of-pointers in LLTKristof Beyls2017-04-197-69/+213
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes PR32471. As comment 10 on that bug report highlights (https://bugs.llvm.org//show_bug.cgi?id=32471#c10), there are quite a few different defendable design tradeoffs that could be made, including not representing pointers at all in LLT. I decided to go for representing vector-of-pointer as a concept in LLT, while keeping the size of the LLT type 64 bits (this is an increase from 48 bits before). My rationale for keeping pointers explicit is that on some targets probably it's very handy to have the distinction between pointer and non-pointer (e.g. 68K has a different register bank for pointers IIRC). If we keep a scalar pointer, it probably is easiest to also have a vector-of-pointers to keep LLT relatively conceptually clean and orthogonal, while we don't have a very strong reason to break that orthogonality. Once we gain more experience on the use of LLT, we can of course reconsider this direction. Rejecting vector-of-pointer types in the IRTranslator is also an option to avoid the crash reported in PR32471, but that is only a very short-term solution; also needs quite a bit of code tweaks in places, and is probably fragile. Therefore I didn't consider this the best option. llvm-svn: 300664
* [GlobalISel] Remove non-determinism from IRTranslator.Kristof Beyls2017-04-191-12/+16
| | | | | | | | | | | This showed up in r300535/r300537, which were reverted in r300538 due to some of the introduced tests in there failing on some bots, due to the non-determinism fixed in this commit. Re-committing r300535/r300537 will add 2 tests for the change in this commit. llvm-svn: 300663
* Revert r300657 due to crashes in stage2 of bootstraps:Chandler Carruth2017-04-192-116/+0
| | | | | | | | | | | | http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/2476/steps/build-stage2-LLVMgold.so/logs/stdio http://bb.pgr.jp/builders/clang-3stage-x86_64-linux/builds/15036/steps/build_llvmclang/logs/stdio I've updated the commit thread, reverting to get the bots back to green. Original commit summary: [JumpThread] We want to fold (not thread) when all predecessor go to single BB's successor. llvm-svn: 300662
* clang-format: Properly match parens of macro parameter lists.Daniel Jasper2017-04-191-3/+4
| | | | | | | No tests yet, but this will be tested by the upcoming: https://reviews.llvm.org/D28462 llvm-svn: 300661
* [XRay][compiler-rt] Fix up CFI annotations and stack alignmentDean Michael Berris2017-04-191-43/+46
| | | | | | | | | | | | | | | | | | | Summary: Previously, we had been very undisciplined about CFI annotations with the XRay trampolines. This leads to runtime crashes due to mis-alined stack pointers that some function implementations may run into (i.e. those using instructions that require properly aligned addresses coming from the stack). This patch attempts to clean that up, as well as more accurately use the correct amounts of space on the stack for stashing and un-stashing registers. Reviewers: eugenis, kcc Subscribers: kpw, llvm-commits Differential Revision: https://reviews.llvm.org/D32202 llvm-svn: 300660
* Revert r300653 and r300650. The underlying commit fixes one issue withChandler Carruth2017-04-195-67/+46
| | | | | | | | | | modules but exposes much more widespread issues. Example and more information is on the review thread for r300650. Original commit summary: [modules] Properly look up the owning module for an instantiation of a merged template. llvm-svn: 300659
* [CodeGen] Use APInt::lshrInPlace instead of APInt::lshr. NFCCraig Topper2017-04-191-3/+3
| | | | llvm-svn: 300658
* [JumpThread] We want to fold (not thread) when all predecessor go to single ↵Xin Tong2017-04-192-0/+116
| | | | | | | | | | | | | | | | BB's successor. . Summary: In case all predecessor go to a single successor of current BB. We want to fold (not thread). Reviewers: efriedma, sanjoy Reviewed By: sanjoy Subscribers: dberlin, majnemer, llvm-commits Differential Revision: https://reviews.llvm.org/D30869 llvm-svn: 300657
* Cleanup some GraphTraits iteration codeTim Shen2017-04-196-114/+65
| | | | | | | | | | | | | | | | | | | | Use children<> and nodes<> in appropriate places to cleanup the code. Also, as part of the cleanup, change the signature of DominatorTreeBase's Split. It is a protected non-virtual member function called only twice, both from within the class, and the removed passed argument in both cases is '*this'. The reason for the existence of that argument seems to be that back before r43115 Split was a free function, so an argument to get '*this' was needed - but now that is no longer the case. Patch by Yoav Ben-Shalom! Differential Revision: https://reviews.llvm.org/D32118 llvm-svn: 300656
* ARM: Use methods to access data stored with frame instructionsSerge Pavlov2017-04-193-8/+27
| | | | | | | | | | | In r300196 several methods were added to TarfetInstrInfo to access data stored with call frame setup/destroy instructions. This change replaces calls to getOperand with calls to such special methods in ARM target. Differential Revision: https://reviews.llvm.org/D32127 llvm-svn: 300655
* [CMake] Add configure check for sys/event.hChris Bieneman2017-04-191-0/+1
| | | | | | This enables the kqueue path in MainLoop for Darwin and BSD. llvm-svn: 300654
* Fix member function call with null 'this' pointer.Richard Smith2017-04-191-3/+7
| | | | llvm-svn: 300653
* Fix tests for extended noexcept in the container adaptors testsEric Fiselier2017-04-196-9/+12
| | | | llvm-svn: 300652
* Remove buggy 'addAttributes(unsigned, AttrBuilder)' overloadReid Kleckner2017-04-193-24/+20
| | | | | | | | | | The 'addAttributes(unsigned, AttrBuilder)' overload delegated to 'get' instead of 'addAttributes'. Since we can implicitly construct an AttrBuilder from an AttributeSet, just standardize on AttrBuilder. llvm-svn: 300651
* [modules] Properly look up the owning module for an instantiation of a ↵Richard Smith2017-04-195-44/+61
| | | | | | | | | | | | merged template. When looking for the template instantiation pattern of a templated entity, consistently select the definition of the pattern if there is one. This means we'll pick the same owning module when we start instantiating a template that we'll later pick when determining which modules are visible during that instantiation. llvm-svn: 300650
* Cleanup usages of _LIBCPP_HAS_NO_<c++11-feature> in <exception>Eric Fiselier2017-04-191-8/+8
| | | | llvm-svn: 300649
* Cleanup usages of _LIBCPP_HAS_NO_<c++11-feature> in <bitset>, <ios>, ↵Eric Fiselier2017-04-194-19/+19
| | | | | | <locale>, and <iterator> llvm-svn: 300648
* One more attempt and WindowsChris Bieneman2017-04-191-0/+1
| | | | | | This is the last Windows compile error, so... Hit me with your best shot. llvm-svn: 300647
* Cleanup remaining usages of _LIBCPP_HAS_NO_<c++11-feature> in the functional ↵Eric Fiselier2017-04-192-18/+14
| | | | | | library llvm-svn: 300646
* Cleanup remaining usages of _LIBCPP_HAS_NO_<c++11-feature> in tuple and utilityEric Fiselier2017-04-193-34/+22
| | | | llvm-svn: 300644
* Cleanup remaining _LIBCPP_HAS_NO_<c++11-feature> usages in container headersEric Fiselier2017-04-194-27/+19
| | | | llvm-svn: 300643
* [libFuzzer] update -help: mention -exact_artifact_path in help for ↵Kostya Serebryany2017-04-191-2/+6
| | | | | | -minimize_crash and -cleanse_crash llvm-svn: 300642
* [AVR] Migrate to new MCAsmInfo CodePointerSizeLeslie Zhai2017-04-191-1/+0
| | | | | | | | | | | | Reviewers: dylanmckay, rengolin, kzhuravl, jroelofs Reviewed By: kzhuravl, jroelofs Subscribers: kzhuravl, llvm-commits Differential Revision: https://reviews.llvm.org/D32154 llvm-svn: 300641
* Another netbsd build failure...Chris Bieneman2017-04-191-1/+0
| | | | llvm-svn: 300640
* ARMFrameLowering: Reserve emergency spill slot for large argumentsMatthias Braun2017-04-192-8/+135
| | | | | | | | | | | | We need to reserve an emergency spill slot in cases with large argument types that could overflow immediate offsets for FP relative address calculations. rdar://31317893 Differential Revision: https://reviews.llvm.org/D31643 llvm-svn: 300639
* Buildbot wack-a-mole!Chris Bieneman2017-04-191-1/+1
| | | | | | This should fix the netbsd bot I just broke. llvm-svn: 300638
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in support headers and final testsEric Fiselier2017-04-1910-39/+35
| | | | llvm-svn: 300637
* ifdefing out the signal handling code on WindowsChris Bieneman2017-04-191-6/+17
| | | | | | | | *fingers crossed* This might fix the Window bots, but I really don't know... llvm-svn: 300636
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the utilities libraryEric Fiselier2017-04-1929-35/+69
| | | | llvm-svn: 300635
* [DataLayout] Removed default value from a variable that isn't used without ↵Craig Topper2017-04-191-3/+2
| | | | | | being overwritten. Make variable an enum instead of an int to avoid a cast later. NFC llvm-svn: 300634
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the string library.Eric Fiselier2017-04-1910-273/+264
| | | | llvm-svn: 300633
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in the numeric tests and headersEric Fiselier2017-04-1932-102/+126
| | | | llvm-svn: 300632
* [XRay][tools] Fix yaml matching to be more permissiveDean Michael Berris2017-04-191-4/+4
| | | | | | | | Account for a potentially empty function name. Follow-up to D32153. llvm-svn: 300631
* Allow suppressing host and target info in VersionPrinterXin Tong2017-04-193-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: VersionPrinter by default outputs information about the Host CPU and Default target. Printing this information requires linking in a large amount of data, such as supported target triples as C strings, which in turn bloats the binary size. Enable a new CMake option LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO which controls printing of the host and target info. This allows the target triple names to be dead-code stripped. This is a nice win for LLVM clients that wish to minimize their binary size, such as graphics drivers. By default this is ON, so there is no change in the default behavior. Clients who wish to suppress this printing can do so by setting this option to off via CMake. A test app on Linux that uses ParseCommandLineOptions() shows a binary size reduction of 23KB (from 149K to 126K) for a Release build, and 24KB (from 135K to 111K) in a MinSizeRel build. Reviewers: klimek, beanz, bogner, chandlerc, compnerd Reviewed By: compnerd Patch by pammon (Peter Ammon) ! Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30904 llvm-svn: 300630
* [AVR] Fix the buildDylan McKay2017-04-181-1/+1
| | | | | | 'PointerSize' was renamed to 'CodePointerSize'. llvm-svn: 300629
* Use less temporary AttributeLists NFCReid Kleckner2017-04-185-51/+33
| | | | llvm-svn: 300628
* Cleanup _LIBCPP_HAS_NO_<c++11-features> macro usage in regexEric Fiselier2017-04-185-21/+19
| | | | llvm-svn: 300627
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the input.output libraryEric Fiselier2017-04-1826-121/+96
| | | | llvm-svn: 300626
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in algorithmEric Fiselier2017-04-1816-110/+72
| | | | llvm-svn: 300625
* [XRay][tools] Add option to llvm-xray extract to symbolize functionsDean Michael Berris2017-04-183-3/+32
| | | | | | | | | | | | | | Summary: This allows us to, if the symbol names are available in the binary, be able to provide the function name in the YAML output. Reviewers: dblaikie, pelikan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32153 llvm-svn: 300624
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros for std::initializer_listEric Fiselier2017-04-186-17/+29
| | | | llvm-svn: 300623
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in thread.Eric Fiselier2017-04-187-60/+54
| | | | llvm-svn: 300622
* [ConstantRange] Optimize APInt creation in getSignedMax/getSignedMin.Craig Topper2017-04-181-8/+8
| | | | | | | | | | We were creating an APInt at the top of these methods that isn't always returned. For ranges wider than 64-bits this results in an allocation and deallocation when its not used. In getSignedMax we were creating Upper-1 to use in a compare and then creating it again for a return value. The compiler is unable to determine that these can be shared. So help it out and create the Upper-1 in a temporary that can be reused. This provides a little compile time improvement. llvm-svn: 300621
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> in std::unordered_map and ↵Eric Fiselier2017-04-1824-234/+98
| | | | | | | | std::unordered_multimap This completes the cleanup of the containers, at least within the tests. llvm-svn: 300620
* Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::unordered_set and ↵Eric Fiselier2017-04-1827-280/+104
| | | | | | std::unordered_multiset llvm-svn: 300619
* Define HAVE_SIGACTION to 1 in Xcode buildChris Bieneman2017-04-181-0/+2
| | | | | | This is needed to make the Xcode project build since it doesn't have auto-generated Config header. llvm-svn: 300618
* [x86] add tests for potential andn optimization; NFCSanjay Patel2017-04-181-2/+40
| | | | llvm-svn: 300617
OpenPOWER on IntegriCloud