summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Improve asserts in TestWatchpointIgnoreCountPavel Labath2017-02-101-9/+7
| | | | | | | | This test is flaky on the windows->android bot. Change assertTrue to assertEqual in the hope better error messages will direct us to the problem. llvm-svn: 294737
* Convert Log class to llvm streamsPavel Labath2017-02-1018-119/+139
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This converts LLDB's logging to use llvm streams instead of lldb_private::Stream and friends. The changes are mostly straight-forward and amount to s/lldb_private::Stream/llvm::raw_ostream. The part worth calling out is the rewrite of the StreamCallback class. Previously this class contained a per-thread buffer of data written. I assume this had something to do with it trying to make sure each log line is delivered as a single event, instead of multiple (possibly interleaved) events. However, this is no longer relevant as the Log class already writes things to a temporary buffer and then delivers the message as a single "write", so I have just removed the code in question. Reviewers: zturner, clayborg Subscribers: emaste, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D29615 llvm-svn: 294736
* Porting the example illustrating Polly from HTML to reStructuredTextTobias Grosser2017-02-1020-618/+1100
| | | | | | | | | | | | | http://polly.llvm.org/example_manual_matmul.html which illustrates individual passes of Polly, has been ported to reStructuredText and necessary changes have been made to the configuration files used by SPHINX to include the new source as a part of the documentation. Contributed-by: Singapuram Sanjay Srivallabh <singapuram.sanjay@gmail.com> Differential Revision: https://reviews.llvm.org/D25163 llvm-svn: 294735
* [ScopInfo] Use original base address when building ScopArrayInfo [NFC]Tobias Grosser2017-02-101-2/+2
| | | | | | | | | This change clarfies that we want to indeed use the original base address when creating the ScopArrayInfo that corresponds to a given memory access. This change prepares for https://reviews.llvm.org/D28518. llvm-svn: 294734
* [ScopInfo] Use getAccessValue to obtain the accessed valueTobias Grosser2017-02-101-1/+1
| | | | | | | | | | | | | | | This replaces the use of getOriginalAddrPtr, a value that is stored in ScopArrayInfo and might at some point not be unique any more. However, the access value is defined to be unique. This change is an update on r294576, which only clarified that we need the original memory access, but where we still remained dependent to have one base pointer per scop. This change removes unnecessary uses of MemoryAddress::getOriginalBaseAddr() in preparation for https://reviews.llvm.org/D28518. llvm-svn: 294733
* Fix yet another Apple buildit bugEric Fiselier2017-02-101-1/+3
| | | | llvm-svn: 294732
* Attempt to fix Apple buildit botsEric Fiselier2017-02-101-1/+5
| | | | llvm-svn: 294731
* Recommit "Split exception.cpp and new.cpp implementation into different ↵Eric Fiselier2017-02-1017-509/+726
| | | | | | | | | | | | | | | | | | | | | | files for different runtimes." This recommits r294707 with additional fixes. The main difference is libc++ now correctly builds without any ABI library. exception.cpp is a bloody mess. It's full of confusing #ifdef branches for each different ABI library we support, and it's getting unmaintainable. This patch breaks down exception.cpp into multiple different header files, roughly one per implementation. Additionally it moves the definitions of exceptions in new.cpp into the correct implementation header. This patch also removes an unmaintained libc++abi configuration. This configuration may still be used by Apple internally but there are no other possible users. If it turns out that Apple still uses this configuration internally I will re-add it in a later commit. See http://llvm.org/PR31904. llvm-svn: 294730
* [PM] Relax the patterns used in the new test I added because someChandler Carruth2017-02-101-20/+20
| | | | | | compilers don't print the typedef name. llvm-svn: 294729
* [PM] Fix a bug in the new loop PM when handling functions with no loops.Chandler Carruth2017-02-104-5/+287
| | | | | | | | | | | | | | | | | | | | | | | | | Without any loops, we don't even bother to build the standard analyses used by loop passes. Without these, we can't run loop analyses or invalidate them properly. Unfortunately, we did these things in the wrong order which would allow a loop analysis manager's proxy to be built but then not have the standard analyses built. When we went to do the invalidation in the proxy thing would fall apart. In the test case provided, it would actually crash. The fix is to carefully check for loops first, and to in fact build the standard analyses before building the proxy. This allows it to correctly trigger invalidation for those standard analyses. An alternative might seem to be to look at whether there are any loops when doing invalidation, but this doesn't work when during the loop pipeline run we delete the last loop. I've even included that as a test case. It is both simpler and more robust to defer building the proxy until there are definitely the standard set of analyses and indeed loops. This bug was uncovered by enabling GlobalsAA in the pipeline. llvm-svn: 294728
* Revert "Split exception.cpp and new.cpp implementation into different files ↵Eric Fiselier2017-02-1017-724/+508
| | | | | | | | for different runtimes." The compiler-rt CMake configuration needs some tweaking before this can land. llvm-svn: 294727
* add #ifdef, fix compilation error in case LLVM_BUILD_GLOBAL_ISEL=OFFIgor Breger2017-02-101-0/+2
| | | | llvm-svn: 294726
* Fix doc for `-opt-bisect-limit`: the LTO option is linker specificMehdi Amini2017-02-101-1/+4
| | | | llvm-svn: 294725
* [X86][GlobalISel] Add general-purpose Register BankIgor Breger2017-02-1011-12/+546
| | | | | | | | | | | | | | | | | Summary: [X86][GlobalISel] Add general-purpose Register Bank. Add trivial handling of G_ADD legalization . Add Regestry Bank selection for COPY and G_ADD instructions Reviewers: rovka, zvi, ab, t.p.northover, qcolombet Reviewed By: qcolombet Subscribers: qcolombet, mgorny, dberris, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D29771 llvm-svn: 294723
* [XRay][graph] Disambiguate name of type from member nameDean Michael Berris2017-02-101-17/+17
| | | | | | | | Follow-up to D29005. Differential Revision: https://reviews.llvm.org/D29005 llvm-svn: 294722
* Properly escape ShellTest subsitutions on Windows. Try 2Eric Fiselier2017-02-101-5/+6
| | | | llvm-svn: 294721
* test: XFAIL windows for non-portable testSaleem Abdulrasool2017-02-101-0/+1
| | | | | | | | This test validates that the lock_guard is declared variadically across C++03 and C++11. Given the lack of stable ABI on Windows and the fact that the RTTI encoding on Windows is different, XFAIL it on that target. llvm-svn: 294720
* test: fix test under WindowsSaleem Abdulrasool2017-02-101-1/+1
| | | | | | | When running the test under clang-cl, we do not report `__GNUC__`, which is needed to supress the warnings which are being treated as errors. llvm-svn: 294719
* properly escape compiler path in .sh.cpp testsEric Fiselier2017-02-101-1/+1
| | | | llvm-svn: 294718
* [XRay] A graph Class for the llvm-xray graphDean Michael Berris2017-02-106-96/+873
| | | | | | | | | | | | | | | | | | | Summary: In preparation for graph comparison and filtering, this is a library for representing graphs in LLVM. This will enable easier encapsulation and reuse of graphs in llvm-xray. Depends on D28999, D28225 Reviewers: dblaikie, dberris Reviewed By: dberris Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D29005 llvm-svn: 294717
* test: allow -target usage on WindowsSaleem Abdulrasool2017-02-101-2/+6
| | | | | | | | When running the tests on Windows with a debug build, _DEBUG must be added to the flags prior to the -target as the forced inclusion of a header will prevent the compile test for the flag to fail. llvm-svn: 294716
* [LoopUnswitch] Remove BFI usage (dead code)Philip Reames2017-02-102-95/+0
| | | | | | | | Chandler mentioned at the last social that the need for BFI in the new pass manager was causing a slight hiccup for this pass. Given this code has been checked in, but off for over a year, it makes sense to just remove it for now. Note that there's nothing wrong with the general idea - it's actually a quite good one - and once we have the infrastructure in place to implement this without the full recompuation on every loop, we absolutely should. llvm-svn: 294715
* Revert "[XRay] A graph Class for the llvm-xray graph"Dean Michael Berris2017-02-106-869/+96
| | | | | | Broke tests, reverting. llvm-svn: 294714
* [XRay] A graph Class for the llvm-xray graphDean Michael Berris2017-02-106-96/+869
| | | | | | | | | | | | | | | | | | | Summary: In preparation for graph comparison and filtering, this is a library for representing graphs in LLVM. This will enable easier encapsulation and reuse of graphs in llvm-xray. Depends on D28999, D28225 Reviewers: dblaikie, dberris Reviewed By: dberris Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D29005 llvm-svn: 294713
* Correctly default to using the system libc++abi on Apple.Eric Fiselier2017-02-102-11/+8
| | | | | | | This patch fixes a regression where libc++ didn't correctly select the system libc++abi when no in-tree version was found. llvm-svn: 294712
* [SelectionDAG] Dump the DAG after legalizing vector ops and after the second ↵Craig Topper2017-02-101-0/+6
| | | | | | | | | | | | | | | | | | | | | type legalization Summary: With -debug, we aren't dumping the DAG after legalizing vector ops. In particular, on X86 with AVX1 only, we don't dump the DAG after we split 256-bit integer ops into pairs of 128-bit ADDs since this occurs during vector legalization. I'm only dumping if the legalize vector ops changes something since we don't print anything during legalize vector ops. So this dump shows up right after the first type-legalization dump happens. So if nothing changed this second dump is unnecessary. Having said that though, I think we should probably fix legalize vector ops to log what its doing. Reviewers: RKSimon, eli.friedman, spatel, arsenm, chandlerc Reviewed By: RKSimon Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D29554 llvm-svn: 294711
* opt-viewer: fix HtmlFormatter encodingAdam Nemet2017-02-101-1/+1
| | | | | | | | | | | | | | | | Summary: Small fix to HtmlFormatter, defaults to ascii encoding, so utf-8 output may get `UnicodeEncodeError: 'ascii' codec can't encode character ... ordinal not in range(128)` during write. Patch by Brian Cain! Reviewers: anemet, fhahn Reviewed By: anemet Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29802 llvm-svn: 294710
* Temporarily revert "For X86-64 linux and PPC64 linux align int128 to 16 bytes."Eric Christopher2017-02-1021-29/+19
| | | | | | | | | until we can get better TargetMachine::isCompatibleDataLayout to compare - otherwise we can't code generate existing bitcode without a string equality data layout. This reverts commit r294702. llvm-svn: 294709
* Temporarily revert "For X86-64 linux and PPC64 linux align int128 to 16 bytes."Eric Christopher2017-02-104-44/+14
| | | | | | | | | until we can get better TargetMachine::isCompatibleDataLayout to compare - otherwise we can't code generate existing bitcode without a string equality data layout. This reverts commit r294703. llvm-svn: 294708
* Split exception.cpp and new.cpp implementation into different files for ↵Eric Fiselier2017-02-1016-505/+724
| | | | | | | | | | | | | | | | | | | different runtimes. exception.cpp is a bloody mess. It's full of confusing #ifdef branches for each different ABI library we support, and it's getting unmaintainable. This patch breaks down exception.cpp into multiple different header files, roughly one per implementation. Additionally it moves the definitions of exceptions in new.cpp into the correct implementation header. This patch also removes an unmaintained libc++abi configuration. This configuration may still be used by Apple internally but there are no other possible users. If it turns out that Apple still uses this configuration internally I will re-add it in a later commit. See http://llvm.org/PR31904. llvm-svn: 294707
* [GlobalISel] Return an Expected<RuleMatcher> for each SDAG pattern. NFC.Ahmed Bougacha2017-02-101-55/+63
| | | | | | | | | | | | | | Instead of emitting the matcher code directly, return the rule matcher and the skip reason as an Expected<RuleMatcher>. This will let us record all matchers and process them before emission. It's a somewhat unconventional use of Error, but it's nicer than, say, std::pair, because of the bool conversions. Differential Revision: https://reviews.llvm.org/D29743 llvm-svn: 294706
* docs: add some documentation for building on WindowsSaleem Abdulrasool2017-02-101-0/+51
| | | | | | | | | This covers how to build libc++ for Windows. This allows others to replicate the MS ABI style build for libc++. It only depends on msvcrt as it uses the Windows threading model and the Windows ABI and can serve as an ABI compatible replacement for msvcprt. llvm-svn: 294705
* SubtargetFeature: Increase MAX_SUBTARGET_FEATURESMatthias Braun2017-02-101-1/+1
| | | | | | | | | | The ARM target is getting really close to the current limit of 128 subtarget features already breaking out of tree enhancements. Increase the size once more to 196. I filed http://llvm.org/PR31926 to request a proper solution. llvm-svn: 294704
* For X86-64 linux and PPC64 linux align int128 to 16 bytes.Eric Christopher2017-02-104-14/+44
| | | | | | | | | | For other platforms we should find out what they need and likely make the same change, however, a smaller additional change is easier for platforms we know have it specified in the ABI. clang support for r294702 llvm-svn: 294703
* For X86-64 linux and PPC64 linux align int128 to 16 bytes.Eric Christopher2017-02-1021-19/+29
| | | | | | | | | | | | For other platforms we should find out what they need and likely make the same change, however, a smaller additional change is easier for platforms we know have it specified in the ABI. As part of this rewrite some of the handling in the backends for data layout and update a bunch of testcases. Based on a patch by Simonas Kazlauskas! llvm-svn: 294702
* [c++1z] In class template argument deduction, all declarators must deduce ↵Richard Smith2017-02-103-8/+22
| | | | | | the same type (just like with auto deduction). llvm-svn: 294700
* Attempt to fix finding clang++ on WindowsEric Fiselier2017-02-101-2/+4
| | | | llvm-svn: 294699
* __threading_support: fix windows buildSaleem Abdulrasool2017-02-101-1/+2
| | | | | | | | The build was broken as there was no overload for long and std::chrono::nanoseconds. Add an explicit conversion to use the operator+. llvm-svn: 294698
* [Concepts] Class template associated constraintsHubert Tong2017-02-106-21/+231
| | | | | | | | | | | | | | | | Summary: This adds associated constraints as a property of class templates. An error is produced if redeclarations are not similarly constrained. Reviewers: rsmith, faisalv, aaron.ballman Reviewed By: rsmith Subscribers: cfe-commits, nwilson Differential Revision: https://reviews.llvm.org/D25674 llvm-svn: 294697
* Fully qualify (preprend ::) calls to math functions from libcMehdi Amini2017-02-101-170/+170
| | | | | | | | | | | | | | | | | | | | | | Summary: This can cause a compile failure in cases like: double log(double); namespace foo { namespace log {} } using namespace foo; void bar(int i) { log((double)i); } Reviewers: EricWF, mclow.lists Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D29804 llvm-svn: 294696
* [TableGen][AsmWriterEmitter] Use a deterministic order to sort InstrAliasesQuentin Colombet2017-02-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Inside an alias group, when ordering instruction aliases, we rely on the priority field to sort them. When the priority is not set or more generally when there is a tie between two aliases, we used to rely on the lexicographic order. However, this order can change for the anonymous records when more instruction, intrinsic, etc. are inserted. For instance, given two anonymous records r1 and r2 with respective name A_999 and A_1000, their lexicography order will be r2 then r1. Now, if an instruction is added before them, their name will become respectively A_1000 and A_1001, thus the lexicography order will be r1 then r2, i.e., it changed. If that happens in an alias group, the assembly output would prefer a different alias for no apparent good reasons. A way to fix that is to use proper priority for all aliases, but we can also make the tie breaker comparison smarter and use a deterministic ordering. This is what this patch does. llvm-svn: 294695
* AMDGPU: Fix trailing whitespaceMatt Arsenault2017-02-105-14/+13
| | | | llvm-svn: 294694
* [c++1z] P0512R0: support for 'explicit' specifier on deduction-guides.Richard Smith2017-02-108-18/+67
| | | | llvm-svn: 294693
* AMDGPU : Add trap handler support.Wei Ding2017-02-1013-30/+213
| | | | | | Differential Revision: http://reviews.llvm.org/D26010 llvm-svn: 294692
* [AMDGPU] Override PSet for M0Stanislav Mekhanoshin2017-02-103-0/+67
| | | | | | | | | | | | This change returns empty PSet list for M0 register. Otherwise its PSet as defined by tablegen is SReg_32. This results in incorrect register pressure calculation every time an instruction uses M0. Such uses count as SReg_32 PSet and inadequately increase pressure on SGPRs. Differential Revision: https://reviews.llvm.org/D29798 llvm-svn: 294691
* [CMake] Fix pthread handling for out-of-tree buildsEric Fiselier2017-02-1016-19/+23
| | | | | | | | | | | | | | | LLVM defines `PTHREAD_LIB` which is used by AddLLVM.cmake and various projects to correctly link the threading library when needed. Unfortunately `PTHREAD_LIB` is defined by LLVM's `config-ix.cmake` file which isn't installed and therefore can't be used when configuring out-of-tree builds. This causes such builds to fail since `pthread` isn't being correctly linked. This patch attempts to fix that problem by renaming and exporting `LLVM_PTHREAD_LIB` as part of`LLVMConfig.cmake`. I renamed `PTHREAD_LIB` because It seemed likely to cause collisions with downstream users of `LLVMConfig.cmake`. llvm-svn: 294690
* Adds the commandline need to run clang-tidy tests.David L. Jones2017-02-101-0/+6
| | | | | | | | Patch by Jorge Gorbe (lethalantidote) Differential Revision: https://reviews.llvm.org/D29737 llvm-svn: 294689
* [libFuzzer] Export external functions on tests.Marcos Pividori2017-02-101-0/+12
| | | | | | | | | | | | | We need to export external functions so they are found when calling GetProcAddress() on Windows. But we can't use `__declspec(dllexport)` because we want the targets to be completely independent from the fuzz engines and don't depend on other header files. Also, we don't want to include platform specific code managed with conditional macros. So, the solution is to add the exported symbols with linker flags in cmake. Differential revision: https://reviews.llvm.org/D29752 llvm-svn: 294688
* [libFuzzer] Use dynamic loading for External Functions on Windows.Marcos Pividori2017-02-102-1/+61
| | | | | | | | | | | | | | | | | | | Replace weak aliases with dynamic loading. Weak aliases were generating some problems when linking for MT on Windows. For MT, compiler-rt's libraries are statically linked to the main executable the same than libFuzzer, so if we use weak aliases, we are providing two different default implementations for the same weak function and the linker fails. In this diff I re implement ExternalFunctions() using dynamic loading, so it works in both cases (MD and MT). Also, dynamic loading is simpler, since we are not defining any auxiliary external function, and we don't need to deal with weak aliases. This is equivalent to the implementation using dlsym(RTLD_DEFAULT, FnName) for Posix. Differential revision: https://reviews.llvm.org/D29751 llvm-svn: 294687
* Update test/CodeGen/X86/sse-align-10.ll to use FileCheck instead of grepDavid L. Jones2017-02-101-1/+4
| | | | | | | | Patch by Jorge Gorbe (lethalantidote). Differential Revision: https://reviews.llvm.org/D29797 llvm-svn: 294686
OpenPOWER on IntegriCloud