summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [MS] Win64 va_arg should expect large arguments to be passed indirectlyReid Kleckner2016-08-252-9/+22
| | | | | | Fixes PR20569 llvm-svn: 279774
* ARM: by default don't set the Thumb bit on MachO relocated values.Tim Northover2016-08-253-10/+42
| | | | | | | | | | | | | Its existence is largely historical, apparently we tried to make ARM object files look maybe-almost-possibly runnable by putting our best guess at the actual value into relocated locations. Of course, the real linker then comes along and can completely change things. But it should only be there for word-sized and movw/movt relocations. It can't be encoded in branch relocations, and I've seen it mess up validity calculations twice in the last couple of weeks so the default is clearly problematic. llvm-svn: 279773
* Fix clang-offload-bundler.c test on WindowsReid Kleckner2016-08-251-1/+1
| | | | llvm-svn: 279772
* [sanitizer] change SizeClassAllocator64 to accept just one template ↵Kostya Serebryany2016-08-258-47/+121
| | | | | | parameter instead of 5. First, this will make the mangled names shorter. Second, this will make adding more parameters simpler. llvm-svn: 279771
* llvm-objdump: ELF: Handle code and data mix in all scenariosHemant Kulkarni2016-08-253-11/+149
| | | | | | Differential Revision: https://reviews.llvm.org/D23621 llvm-svn: 279770
* [MemCpy] Check for alias in performMemCpyToMemSetOptzn, instead of the ↵Tim Shen2016-08-252-1/+41
| | | | | | | | | | | | | | | identity of two operands Summary: This fixes pr29105. The reason is that lifetime marks creates new aliasing pointers the original ones, but before this patch aliases were not checked in performMemCpyToMemSetOptzn. Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23846 llvm-svn: 279769
* [lsan] one more test fix to please the Debian Sid bot (this time, confirmed ↵Kostya Serebryany2016-08-251-3/+3
| | | | | | on the proper machine). Apparently, newer glibc uses slightly more stack llvm-svn: 279768
* Reuse an SDLoc throughout a function. NFC.Michael Kuperstein2016-08-251-18/+12
| | | | llvm-svn: 279767
* Refactor to remove the assumption that we know the name of the module we're ↵Richard Smith2016-08-255-12/+18
| | | | | | emitting at the point when we create a PCHGenerator (with the C++ modules TS, we find that out part way through parsing the input). llvm-svn: 279766
* Omit column info for CodeView by defaultAdrian McCarthy2016-08-253-6/+19
| | | | | | | | | | | | Clang tracks only start columns, not start-end ranges. CodeView allows for that, but the VS debugger doesn't handle anything less than a complete range well--it either highlights the wrong part of a statement or truncates source lines in the assembly view. It's better to have no column information at all. So by default, we'll omit the column information for CodeView targeting Windows. Since the column info is still useful for sanitizers, I've promoted -gcolumn-info (and -gno-column-info) to a CoreOption and added a couple tests to make sure that works for clang-cl. Differential Revision: https://reviews.llvm.org/D23720 llvm-svn: 279765
* [MS] Pass non-trivially-copyable objects indirectly on Windows ARMReid Kleckner2016-08-252-0/+21
| | | | | | | | | | This isn't exactly what MSVC does, unfortunately. MSVC does not pass objects with destructors but no copy constructors by address. More ARM expertise is required to really understand what should be done here. Fixes PR29136. llvm-svn: 279764
* Followon to r279744. Find the other exception types and make __throw_XXX ↵Marshall Clow2016-08-259-34/+40
| | | | | | routines (and call them). Remove the generic __libcpp_throw routine, since no one uses it anymore. llvm-svn: 279763
* GlobalISel: add missing type to G_UADDE instructionsTim Northover2016-08-252-8/+8
| | | | llvm-svn: 279762
* GlobalISel: mark overflow bit of overflow ops legal.Tim Northover2016-08-251-1/+4
| | | | | | It's expected this will map to NZCV register class and be properly selectable. llvm-svn: 279761
* GlobalISel: mark simple ops legal even on types < 32-bit.Tim Northover2016-08-257-28/+9
| | | | | | | | The 32-bit variants of these operations don't depend on the bits not being operated on, so they also naturally model operations narrower than the actual register width. llvm-svn: 279760
* GlobalISel: mark pointer constants as legal on AArch64.Tim Northover2016-08-252-0/+5
| | | | llvm-svn: 279759
* GlobalISel: perform multi-step legalizationTim Northover2016-08-257-3/+81
| | | | llvm-svn: 279758
* GlobalISel: mark small extends as legal on AArch64Tim Northover2016-08-252-0/+86
| | | | llvm-svn: 279757
* Hooking up a check-all target for the runtimes projectsChris Bieneman2016-08-252-2/+45
| | | | llvm-svn: 279756
* [X86] 512-bit VPAVG requires AVX512BWMichael Kuperstein2016-08-252-57/+1763
| | | | | | | | | Fix VPAVG detection to require AVX512BW, not AVX512F for 512-bit widths, and change associated asserts to assert in the right direction... This fixes PR29111. llvm-svn: 279755
* [Sema][Comments] Add support for TypeAliasTemplateBruno Cardoso Lopes2016-08-252-0/+46
| | | | | | | | | | | | | | | | Emit proper diagnostics when -Wdocumentation is used with constructs such as: template<typename T> using fn = int(T aaa, int ccc); Previously clang wouldn't recognize the function and complain with 'comment that is not attached to a function declaration'. Differential Revision: https://reviews.llvm.org/D23860 rdar://problem/27300695 llvm-svn: 279754
* dfsan: Enable 48-bit VMA support on aarch64Adhemerval Zanella2016-08-252-6/+36
| | | | | | | | | This patch adds 48-bits VMA support for msan on aarch64. As current mappings for aarch64, 48-bit VMA also supports PIE executable. Tested on 39 and 48-bit VMA kernels on aarch64. llvm-svn: 279753
* msan: Enable 48-bit VMA support on aarch64Adhemerval Zanella2016-08-253-8/+55
| | | | | | | | | | | | | This patch adds 48-bits VMA support for msan on aarch64. As current mappings for aarch64, 48-bit VMA also supports PIE executable. The 48-bits segments only cover the usual PIE/default segments plus some more segments (262144GB total, 0.39% total VMA). Memory avaliability can be increase by adding multiple application segments like 39 and 42 mapping (some mappings were added on this patch as well). Tested on 39 and 48-bit VMA kernels on aarch64. llvm-svn: 279752
* [X86][SSE] INSERTPS is only combined on v4f32 types. NFCI.Simon Pilgrim2016-08-251-2/+1
| | | | llvm-svn: 279751
* [Hexagon] Remove extraneous debug output from HexagonCopyToCombine.cpp Ron Lieberman2016-08-251-1/+0
| | | | | | BB# ... llvm-svn: 279750
* [UNROLL] Postpone ScalarEvolution::forgetLoop after TripCountSC is expandedWei Mi2016-08-253-5/+43
| | | | | | | | | | | | | | when unroll runtime iteration loop. In llvm::UnrollRuntimeLoopRemainder, if the loop to be unrolled is the inner loop inside a loop nest, the scalar evolution needs to be dropped for its parent loop which is done by ScalarEvolution::forgetLoop. However, we can postpone forgetLoop to the end of UnrollRuntimeLoopRemainder so TripCountSC expansion can still reuse existing value. Differential Revision: https://reviews.llvm.org/D23572 llvm-svn: 279748
* [builtins] Make sure builtin compile tests respect CMAKE_C_COMPILER_TARGETFrancis Ricci2016-08-251-1/+7
| | | | | | | | | | | | | | Summary: Since we generate the compiler invocation on our own, we need to manually add -target if CMAKE_C_COMPILER_TARGET has been specified. Reviewers: compnerd, beanz Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23823 llvm-svn: 279747
* Remove duplicate inlineMarshall Clow2016-08-251-1/+1
| | | | llvm-svn: 279746
* Fix line endingsSimon Pilgrim2016-08-251-16/+16
| | | | llvm-svn: 279745
* Add an _LIBCPP_NORETURN inline function named __throw_XXX for each exception ↵Marshall Clow2016-08-2530-288/+272
| | | | | | type we define. They either construct and throw the exception, or abort() (if exceptions are disabled). Use these functions everywhere instead of assert()ing when exceptions are disabled. WARNING: This is a behavior change - but only with exceptions disabled. Reviewed as: https://reviews.llvm.org/D23855. llvm-svn: 279744
* Query llvm-config to get system libs required for linking.Michael Kruse2016-08-251-19/+5
| | | | | | | | | Remove the unused function get_system_libs. Instead, run 'llvm-config --system-libs' to determine which libraries are required in addition LLVM's for linking an executable. At the moment these are the unittests that link to gtest and transitively depend on these system libs. llvm-svn: 279743
* Add comment for querying --libdir. NFC.Michael Kruse2016-08-251-0/+1
| | | | llvm-svn: 279742
* Fix offload bundler test to support Windows new lines.Samuel Antao2016-08-251-2/+2
| | | | llvm-svn: 279741
* Do not build unittests by default.Michael Kruse2016-08-251-1/+1
| | | | | | | | | Only build them for check-polly and check-polly-unittests in out-of-tree builds. In LLVM, this behaviour is controlled with LLVM_BUILD_TESTS. Polly out-of-tree does not have such a flag. llvm-svn: 279740
* [Hexagon] vector store print tracing.Ron Lieberman2016-08-252-4/+19
| | | | | | | | Add vector store print tracing option for hexagon vector instructions. https://reviews.llvm.org/D23870 llvm-svn: 279739
* Add missing words to wanrning.Michael Kruse2016-08-251-1/+1
| | | | llvm-svn: 279738
* Add warning for FORCE_STATIC libraries when using BUILD_SHARED_LIBS.Michael Kruse2016-08-251-0/+4
| | | | | | | | | | | | | | | | | We cannot built ISL as shared object because we build it with -fvisibility=hidden; The created shared object would have no accessible symbols. The reason it is built with -fvisibility=hidden is because opt/clang might load other libraries that have ISL embedded and whose' symbols would conflict with Polly's private ISL. This could happend with Draggonegg. In the future we might instead statically link PollyISL into the Polly shared object to avoid installing the static library. Requested-by: Vedran Miletic <vedran@miletic.net> See-also: llvm.org/PR27306 llvm-svn: 279737
* [X86][AVX] Improved AVX512F/AVX512VL SubVectorBroadcast testsSimon Pilgrim2016-08-251-2/+256
| | | | llvm-svn: 279736
* [X86][AVX] Provide SubVectorBroadcast fallback if load fold fails (PR29133)Simon Pilgrim2016-08-254-2/+1302
| | | | | | Fix for PR29133, matching the approach that was taken for AVX1 scalar broadcasts. llvm-svn: 279735
* Introduce unittests.Michael Kruse2016-08-257-3/+335
| | | | | | | | | | | | | | Add the infrastructure for unittests to Polly and two simple tests for conversion between isl_val and APInt. In addition, a build target check-polly-unittests is added to run only the unittests but not the regression tests. Clang's unittest mechanism served as as a blueprint which then was adapted to Polly. Differential Revision: https://reviews.llvm.org/D23833 llvm-svn: 279734
* Use configure_lit_site_cfg instead of configure_file.Michael Kruse2016-08-251-4/+19
| | | | | | | | | | | | | configure_lit_site_cfg defines some more parameters that are used in lit.site.cfg.in. configure_file would leave those empty. These additional definitions seem to be unimportant for regression tests, but unittests do not work without them. In case of out-of-tree builds, define the additional parameters with default values. These may not take all configuration parameters into account, as configure_lit_site_cfg would. llvm-svn: 279733
* GVN-hoist: fix hoistingFromAllPaths for loops (PR29034)Sebastian Pop2016-08-253-31/+219
| | | | | | | | | | | | | | | | It is invalid to hoist stores or loads if they are not executed on all paths from the hoisting point to the exit of the function. In the testcase, there are paths in the loop that do not execute the stores or the loads, and so hoisting them within the loop is unsafe. The problem is that the current implementation of hoistingFromAllPaths is incomplete: it walks all blocks dominated by the hoisting point, and does not return false when the loop contains a path on which the hoisted ld/st is not executed. Differential Revision: https://reviews.llvm.org/D23843 llvm-svn: 279732
* Remove trailing WS [NFC]Aditya Kumar2016-08-251-15/+15
| | | | llvm-svn: 279731
* Add LLVM libdir to library search path in out-of-tree builds.Michael Kruse2016-08-251-0/+5
| | | | | | | | | This previously was not required because in an out-of-tree build Polly would only build libraries (LLVMPolly, libPolly, libPollyISL, libPollyPPCG), but no executables where the libraries would be linked to. This will change when adding unittests in a follow-up commit. llvm-svn: 279730
* Removed trailing whitespace. NFC.George Rimar2016-08-251-1/+1
| | | | llvm-svn: 279729
* Also warn if llvm-lit is not available.Michael Kruse2016-08-251-6/+6
| | | | | | | The program 'llvm-lit', like 'not' and 'FileCheck' are necessary for running check-polly. Warn of any of the three is not in LLVM_INSTALL_ROOT/bin directory. llvm-svn: 279728
* clang-format: [JS] nested and tagged template strings.Martin Probst2016-08-254-24/+84
| | | | | | | | | | | | | | | | | | | JavaScript template strings can be nested arbitrarily: foo = `text ${es.map(e => { return `<${e}>`; })} text`; This change lexes nested template strings using a stack of lexer states to correctly switch back to template string lexing on closing braces. Also, reuse the same stack for the token-stashed logic. Reviewers: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D22431 llvm-svn: 279727
* [ELF] - Implemented --oformat binary option.George Rimar2016-08-255-19/+92
| | | | | | | | | | | -oformat output-format `-oformat' option can be used to specify the binary format for the output object file. Patch implements binary format output type. Differential revision: https://reviews.llvm.org/D23769 llvm-svn: 279726
* gdb-remote: Make the sequence mutex non-recursivePavel Labath2016-08-258-101/+164
| | | | | | | | | | | | | | | | | | | | | | | Summary: This is a preparatory commit for D22914, where I'd like to replace this mutex by an R/W lock (which is also not recursive). This required a couple of changes: - The only caller of Read/WriteRegister, GDBRemoteRegisterContext class, was already acquiring the mutex, so these functions do not need to. All functions which now do not take a lock, take an lock argument instead, to remind the caller of this fact. - GetThreadSuffixSupported() was being called from locked and unlocked contexts (including contexts where the process was running, and the call would fail if it did not have the result cached). I have split this into two functions, one which computes the thread suffix support and caches it (this one always takes the lock), and another, which returns the cached value (and never needs to take the lock). This feels quite natural as ProcessGdbRemote was already pre-caching this value at the start. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D23802 llvm-svn: 279725
* Fix warnings preventing copy elision.Pavel Labath2016-08-251-10/+10
| | | | | | | | | | | | | | | | | Summary: Moving a temporary object prevents copy elision, which is exactly what clang points out by warning about this pattern. The fix is simply removal of std::move applied to temporary objects. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D23825 Author: Taras Tsugrii <ttsugrii@fb.com> llvm-svn: 279724
OpenPOWER on IntegriCloud