summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [RISCV] Add option aliases: -mcmodel=medany and -mcmodel=medlowKito Cheng2019-09-172-0/+16
| | | | | | | | | | | | | | RISC-V GCC use -mcmodel=medany and -mcmodel=medlow, but LLVM use -mcmodel=small and -mcmodel=medium. Add those two option aliases for provide same user interface between GCC and LLVM. Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D67066 llvm-svn: 372080
* [bugpoint] Add support for -Oz and properly enable -Os.Florian Hahn2019-09-171-12/+34
| | | | | | | | | | | | | | | | | This patch adds -Oz as option and also properly enables support for -Os. Currently, the existing check for -Os is dead, because the enclosing if only checks of O1, O2 and O3. There is still a difference between the -Oz pipeline compared to opt, but I have not been able to track that down yet. Reviewers: bogner, sebpop, efriedma Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D67593 llvm-svn: 372079
* [RISCV] Define __riscv_cmodel_medlow and __riscv_cmodel_medany correctlyKito Cheng2019-09-172-2/+28
| | | | | | | | | | | | | | RISC-V LLVM was only implement small/medlow code model, so it defined __riscv_cmodel_medlow directly without check. Now, we have medium/medany code model in RISC-V back-end, it should define according the actually code model. Reviewed By: lewis-revill Differential Revision: https://reviews.llvm.org/D67065 llvm-svn: 372078
* Reland "[lldb][NFC] Make ApplyObjcCastHack less scary"Raphael Isemann2019-09-171-9/+5
| | | | | | First version had a typo. llvm-svn: 372077
* [ARM][MVE] Add invalidForTailPredication to TSFlagsSam Parker2019-09-175-0/+197
| | | | | | | | | Set this bit for the MVE reduction instructions to prevent a loop from becoming tail predicated in their presence. Differential Revision: https://reviews.llvm.org/D67444 llvm-svn: 372076
* [Attributor] Use Alias Analysis in noalias callsite argument deductionHideto Ueno2019-09-173-15/+21
| | | | | | | | | | | | | | | | Summary: This patch adds a check of alias analysis in `noalias` callsite argument deduction. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67604 llvm-svn: 372075
* [clangd] Remove stale comment. NFCIlya Biryukov2019-09-171-2/+0
| | | | llvm-svn: 372074
* [Attributor] Create helper struct for handling analysis gettersHideto Ueno2019-09-172-31/+37
| | | | | | | | | | | | | | | | Summary: This patch introduces a helper struct `AnalysisGetter` to put together analysis getters. In this patch, a getter for `AAResult` is also added for `noalias`. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67603 llvm-svn: 372072
* [git-llvm] Do not reinvent `@{upstream}` (take 2)David Zarzycki2019-09-171-9/+9
| | | | | | | | | | | | This makes git-llvm more of a thin wrapper around git while temporarily maintaining backwards compatibility with past git-llvm behavior. Using @{upstream} makes git-llvm more robust when used with a nontrivial local repository. https://reviews.llvm.org/D67389 llvm-svn: 372070
* [X86] Split oversized vXi1 vector arguments and return values into scalars ↵Craig Topper2019-09-175-86/+1794
| | | | | | | | | | | | | | | | | on avx512 targets. Previously we tried to split them into narrower v64i1 or v16i1 pieces that each got promoted to vXi8 and then passed in a zmm or xmm register. But this crashes when you need to pass more pieces than available registers reserved for argument passing. The scalarizing done here generates much longer and slower code, but is consistent with the behavior of avx2 and earlier targets for these types. Fixes PR43323. llvm-svn: 372069
* [X86] Allow masked VBROADCAST instructions to be turned into BLENDM with a ↵Craig Topper2019-09-173-80/+159
| | | | | | | | | | broadcast load to avoid a copy. The BLENDM instructions allow an 2 sources and an independent destination while masked VBROADCAST has the destination tied to the source. llvm-svn: 372068
* [X86] Add support for commuting EVEX VCMP instructons with any immediate value.Craig Topper2019-09-172-8/+34
| | | | | | Previously we limited to the EQ/NE/TRUE/FALSE/ORD/UNORD immediates. llvm-svn: 372067
* [X86] Add test case for missed opportunity to commute a VCMP instruction ↵Craig Topper2019-09-171-0/+37
| | | | | | after unfolding one load in order to fold another load. llvm-svn: 372066
* [X86] Enable commuting of EVEX VCMP for all immediate values during isel.Craig Topper2019-09-175-45/+55
| | | | llvm-svn: 372065
* [test] Disable reproducer dump test on WindowsJonas Devlieghere2019-09-171-0/+1
| | | | llvm-svn: 372064
* Fix reliance on -flax-vector-conversions in AVX intrinsics headers andRichard Smith2019-09-174-16/+16
| | | | | | corresponding tests. llvm-svn: 372063
* Fix reliance on lax vector conversions in tests for x86 intrinsics.Richard Smith2019-09-178-15/+15
| | | | llvm-svn: 372062
* Remove reliance on lax vector conversions from altivec.h in VSX mode.Richard Smith2019-09-175-23/+43
| | | | llvm-svn: 372061
* [ScriptInterpreter] Initialize globals when loading a scripting module.Jonas Devlieghere2019-09-173-6/+16
| | | | | | | | | | | | | The LoadScriptingModule used by command script import wasn't initializing the LLDB global variables (things like `lldb.frame` and `lldb.debugger`). They would get initialized however when running the interactive script interpreter or running a single script line (e.g. `script print(lldb.frame)`). This patch fixes that by properly initializing the globals when loading a Python module. Differential revision: https://reviews.llvm.org/D67644 llvm-svn: 372060
* [ELF][Hexagon] Allow PT_LOAD to have overlapping p_offset ranges on EM_HEXAGONFangrui Song2019-09-174-81/+76
| | | | | | | | Port the D64906 technique to EM_HEXAGON. This concludes the patch series. Differential Revision: https://reviews.llvm.org/D67605 llvm-svn: 372059
* Push lambda scope earlier when transforming lambda expressionNicholas Allegra2019-09-172-4/+19
| | | | | | Differential Revision: https://reviews.llvm.org/D66067 llvm-svn: 372058
* Revert "[lldb][NFC] Make ApplyObjcCastHack less scary"Jim Ingham2019-09-171-5/+9
| | | | | | | | | | | | | | This reverts commit 21641a2f6dbac22653befd03496e0850537882ff. It was causing the following test failures: lldb-Suite.lang/objc/objc-class-method.TestObjCClassMethod.py lldb-Suite.lang/objc/foundation.TestObjCMethodsString.py lldb-Suite.lang/objc/foundation.TestConstStrings.py lldb-Suite.lang/objc/radar-9691614.TestObjCMethodReturningBOOL.py lldb-Suite.lang/objc/foundation.TestObjCMethodsNSArray.py llvm-svn: 372057
* [libFuzzer] Always print DSO map on Fuchsia libFuzzer launchJake Ehrlich2019-09-172-0/+12
| | | | | | | | | | | | | | | | Fuchsia doesn't have /proc/id/maps, so it relies on the kernel logging system to provide the DSO map to be able to symbolize in the context of ASLR. The DSO map is logged automatically on Fuchsia when encountering a crash or writing to the sanitizer log for the first time in a process. There are several cases where libFuzzer doesn't encounter a crash, e.g. on timeouts, OOMs, and when configured to print new PCs as they become covered, to name a few. Therefore, this change always writes to the sanitizer log on startup to ensure the DSO map is available in the log. Author: aarongreen Differential Revision: https://reviews.llvm.org/D66233 llvm-svn: 372056
* [OPENMP] Fix the test, NFCAlexey Bataev2019-09-171-3/+5
| | | | llvm-svn: 372055
* llvm-reduce: Clean out previous test temp/output dir, since it was a dir and ↵David Blaikie2019-09-164-0/+4
| | | | | | now it's used as just a single file llvm-svn: 372054
* llvm-reduce: Remove some string copiesDavid Blaikie2019-09-162-25/+5
| | | | llvm-svn: 372053
* [test] Fail gracefully if the regex doesn't matchJonas Devlieghere2019-09-161-6/+11
| | | | | | | | This test is failing on the Fedora bot (staging). Rather than failing with an IndexError, we should trigger an assert and dump the log when the regex doesn't match. llvm-svn: 372052
* Revert r372035: "[lit] Make internal diff work in pipelines"Joel E. Denny2019-09-165-276/+241
| | | | | | This breaks a Windows bot. llvm-svn: 372051
* [GlobalISel] Partially revert r371901.Amara Emerson2019-09-163-3/+102
| | | | | | | | | | | r371901 was overeager and widenScalarDst() and the like in the legalizer attempt to increment the insert point given in order to add new instructions after the currently legalizing inst. In cases where the insertion point is not exactly the current instruction, then callers need to de-compensate for the behaviour by decrementing the insertion iterator before calling them. It's not a nice state of affairs, for now just undo the problematic parts of the change. llvm-svn: 372050
* llvm-reduce: Make tests shell-independent by passing the interpreter on the ↵David Blaikie2019-09-165-51/+15
| | | | | | command line rather than using #! in the test file llvm-svn: 372049
* Add libc to path mappings in git-llvm.David L. Jones2019-09-161-0/+1
| | | | llvm-svn: 372048
* Fix swig python package pathHaibo Huang2019-09-161-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The path defined in CMakeLists.txt doesn't match the path generated in our python script. This change fixes that. LLVM_LIBRARY_OUTPUT_INTDIR is defined as: ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}) On the other hand, the path of site-package is generaged in get_framework_python_dir_windows() in finishSwigPythonLLDB.py as: (Dispite its name, the function is used for everything other than xcode) prefix/cmakeBuildConfiguration/distutils.sysconfig.get_python_lib() From lldb/CMakeLists.txt, we can see that: prefix=${CMAKE_BINARY_DIR}, cmakeBuildConfiguration=${CMAKE_CFG_INTDIR} And from python source code, we can see get_python_lib() always returns lib/pythonx.y/site-packages for posix, or Lib/site-packages for windows: https://github.com/python/cpython/blob/3.8/Lib/distutils/sysconfig.py#L128 We should make them match each other. Subscribers: mgorny, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D67583 llvm-svn: 372047
* [Reproducer] Implement dumping packets.Jonas Devlieghere2019-09-162-3/+25
| | | | | | | | | This patch completes the dump functionality by adding support for dumping a reproducer's GDB remote packets. Differential revision: https://reviews.llvm.org/D67636 llvm-svn: 372046
* Fix warning: lambda capture 'temp_file_path' is not usedJonas Devlieghere2019-09-161-2/+1
| | | | llvm-svn: 372044
* [PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32Nemanja Ivanovic2019-09-163-24/+49
| | | | | | | | | | | | | Add the missing piece of r372029. Somehow when the patch for review D61961 was committed, only the test case went in and the code didn't. This of course caused all kinds of build bot breaks. This patch just adds the code for that patch. Author: Lei Huang Differential revision: https://reviews.llvm.org/D61961 llvm-svn: 372043
* [Remarks] Allow remarks::Format::YAML to take a string tableFrancis Visoiu Mistrih2019-09-168-74/+139
| | | | | | | It should be allowed to take a string table in case all the strings in the remarks point there, but it shouldn't use it during serialization. llvm-svn: 372042
* [test] Clean up previous raw profile before merging into itVedant Kumar2019-09-161-1/+1
| | | | | | | This fixes a test failure in instrprof-set-file-object-merging.c which seems to have been caused by reuse of stale data in old raw profiles. llvm-svn: 372041
* [OPENMP]Fix the test, NFC.Alexey Bataev2019-09-161-2/+3
| | | | llvm-svn: 372040
* [Modules][Objective-C] Use complete decl from module when diagnosing missing ↵Bruno Cardoso Lopes2019-09-166-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | import Summary: Otherwise the definition (first found) for ObjCInterfaceDecl's might precede the module one, which will eventually lead to crash, since diagnoseMissingImport needs one coming from a module. This behavior changed after Richard's r342018, which started to look into the definition of ObjCInterfaceDecls. rdar://problem/49237144 Reviewers: rsmith, arphaman Subscribers: jkorous, dexonsmith, ributzka, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66982 llvm-svn: 372039
* [compiler-rt][crt] make test case nontrivial in check_cxx_section_existsJian Cai2019-09-161-1/+1
| | | | | | | | | | | | | | | | | | Summary: .init_array gets optimized away when building with -O2 and as a result, check_cxx_section_exists failed to pass -DCOMPILER_RT_HAS_INITFINI_ARRAY when building crtbegin.o and crtend.o, which causes binaries linked with them encounter segmentation fault. See https://crbug.com/855759 for details. This change prevents .init_array section to be optimized away even with -O2 or higher optimization level. Subscribers: dberris, mgorny, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D67628 llvm-svn: 372038
* [clang-tidy] add checks to bugprone-posix-returnJian Cai2019-09-165-19/+109
| | | | | | This check now also checks if any calls to pthread_* functions expect negative return values. These functions return either 0 on success or an errno on failure, which is positive only. llvm-svn: 372037
* Add a director, along with README.txt and LICENSE.txt, for libc.David L. Jones2019-09-162-0/+286
| | | | llvm-svn: 372036
* [lit] Make internal diff work in pipelinesJoel E. Denny2019-09-165-241/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | When using lit's internal shell, RUN lines like the following accidentally execute an external `diff` instead of lit's internal `diff`: ``` # RUN: program | diff file - # RUN: not diff file1 file2 | FileCheck %s ``` Such cases exist now, in `clang/test/Analysis` for example. We are preparing patches to ensure lit's internal `diff` is called in such cases, which will then fail because lit's internal `diff` cannot currently be used in pipelines and doesn't recognize `-` as a command-line option. To enable pipelines, this patch moves lit's `diff` implementation into an out-of-process script, similar to lit's `cat` implementation. A follow-up patch will implement `-` to mean stdin. Reviewed By: probinson, stella.stamenova Differential Revision: https://reviews.llvm.org/D66574 llvm-svn: 372035
* Revert "Implement std::condition_variable via pthread_cond_clockwait() where ↵Dan Albert2019-09-163-156/+28
| | | | | | | | available" This reverts commit 5e37d7f9ff257ec62d733d3d94b11f03e0fe51ca. llvm-svn: 372034
* [NFC] Test commit accessBardia Mahjour2019-09-161-0/+1
| | | | llvm-svn: 372033
* [Docs] Bug fix for docs homepageDeForest Richards2019-09-161-1/+0
| | | | | | Removes reference to non-existent Reference Documentation page. llvm-svn: 372032
* [Docs] Adds Getting Started/Tutorials, Reference to LLVM docs homepageDeForest Richards2019-09-163-52/+58
| | | | | | Adds a section for Getting Started/Tutorials and Reference topics to the LLVM docs homepage. llvm-svn: 372031
* [PowerPC] Cust lower fpext v2f32 to v2f64 from extract_subvector v4f32Lei Huang2019-09-161-0/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a follow up patch from https://reviews.llvm.org/D57857 to handle extract_subvector v4f32. For cases where we fpext of v2f32 to v2f64 from extract_subvector we currently generate on P9 the following: lxv 0, 0(3) xxsldwi 1, 0, 0, 1 xscvspdpn 2, 0 xxsldwi 3, 0, 0, 3 xxswapd 0, 0 xscvspdpn 1, 1 xscvspdpn 3, 3 xscvspdpn 0, 0 xxmrghd 0, 0, 3 xxmrghd 1, 2, 1 stxv 0, 0(4) stxv 1, 0(5) This patch custom lower it to the following sequence: lxv 0, 0(3) # load the v4f32 <w0, w1, w2, w3> xxmrghw 2, 0, 0 # Produce the following vector <w0, w0, w1, w1> xxmrglw 3, 0, 0 # Produce the following vector <w2, w2, w3, w3> xvcvspdp 2, 2 # FP-extend to <d0, d1> xvcvspdp 3, 3 # FP-extend to <d2, d3> stxv 2, 0(5) # Store <d0, d1> (%vecinit11) stxv 3, 0(4) # Store <d2, d3> (%vecinit4) Differential Revision: https://reviews.llvm.org/D61961 llvm-svn: 372029
* [NFC] Move dumping into GDBRemotePacketJonas Devlieghere2019-09-163-5/+23
| | | | | | | | This moves the dumping logic from the GDBRemoteCommunicationHistory class into the GDBRemotePacket so that it can be reused from the reproducer command object. llvm-svn: 372028
* Open fstream files in O_CLOEXEC mode when possible.Dan Albert2019-09-162-12/+23
| | | | | | | | | | | | | | Reviewers: EricWF, mclow.lists, ldionne Reviewed By: ldionne Subscribers: smeenai, dexonsmith, christof, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D59839 llvm-svn: 372027
OpenPOWER on IntegriCloud