summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [DAGCombiner] Initial support for the fast-math flag contractAdam Nemet2017-03-303-19/+93
| | | | | | | | | | | | | | | | Now alternatively to the TargetOption.AllowFPOpFusion global flag, FMUL->FADD can also use the per operation FMF to allow fusion. The idea here is not to port everything to the new scheme (e.g. fused multiply-and-sub will be ported later) but that this work all the way from clang. The transformation is conditionalized on *both* the FADD and the FMUL having the FMF contract flag. Differential Revision: https://reviews.llvm.org/D31169 llvm-svn: 299096
* Revert r298776 - Expression: add missing linkage to RuntimeDyld ...Michal Gorny2017-03-301-1/+0
| | | | | | This needs to be addressed within LLVM itself. llvm-svn: 299095
* Correcting a typo; NFC.Aaron Ballman2017-03-301-1/+1
| | | | llvm-svn: 299094
* [CodeGen] Pass SDAG an ORE, and replace FastISel stats with remarks.Ahmed Bougacha2017-03-309-263/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the long-term, we want to replace statistics with something finer-grained that lets us gather per-function data. Remarks are that replacement. Create an ORE instance in SelectionDAGISel, and pass it to SelectionDAG. SelectionDAG was used so that we can emit remarks from all SelectionDAG-related code, including TargetLowering and DAGCombiner. This isn't used in the current patch but Adam tells me he's interested for the fp-contract combines. Use the ORE instance to emit FastISel failures as remarks (instead of the mix of dbgs() dumps and statistics that we currently have). Eventually, we want to have an API that tells us whether remarks are enabled (http://llvm.org/PR32352) so that we don't emit expensive remarks (in this case, dumping IR) when it's not needed. For now, use 'isEnabled' as a crude replacement. This does mean that the replacement for '-fast-isel-verbose' is now '-pass-remarks-missed=isel'. Additionally, clang users also need to enable remark diagnostics, using '-Rpass-missed=isel'. This also removes '-fast-isel-verbose2': there are no static statistics that we want to only enable in asserts builds, so we can always use the remarks regardless of the build type. Differential Revision: https://reviews.llvm.org/D31405 llvm-svn: 299093
* Fixup for r299085: On Windows %p doesn't print 0x prefix.Kuba Mracek2017-03-302-2/+2
| | | | llvm-svn: 299092
* [DAGCombiner] add helper function for visitORLike; NFCISanjay Patel2017-03-301-55/+75
| | | | | | | | | | | | | | | | This combines all of the equivalent clean-ups for foldAndOfSetCCs: https://reviews.llvm.org/rL298938 https://reviews.llvm.org/rL298940 https://reviews.llvm.org/rL298944 https://reviews.llvm.org/rL298949 https://reviews.llvm.org/rL298950 https://reviews.llvm.org/rL299002 https://reviews.llvm.org/rL299013 The sins of code duplication are on full display here: each function is missing a fold that wasn't copied over from its logical sibling. llvm-svn: 299091
* Fixup for r299085: Print all output to stderr.Kuba Mracek2017-03-302-2/+2
| | | | llvm-svn: 299090
* Fixup for r299085: Include stdint.h in scribble.cc to make uintptr_t available.Kuba Mracek2017-03-302-0/+2
| | | | llvm-svn: 299089
* [yaml2obj] Enable and fix testsChris Bieneman2017-03-303-1/+5
| | | | | | | | | | | | | | | | | | | | Summary: These tests were not being run because the yaml extension wasn't be picked up by lit. This change also fixes the tests which themselves were broken. Patch By: Sam Clegg Reviewers: beanz Reviewed By: beanz Subscribers: fhahn Differential Revision: https://reviews.llvm.org/D31436 llvm-svn: 299088
* [libc++abi] Remove unistd.h includeShoaib Meenai2017-03-301-2/+0
| | | | | | | | | | | This was originally there for the _POSIX_THREADS define, to detect the presence of pthreads. That went away with the externalized threading support, so the include can go away too. config.h is now completely empty. A follow-up commit will remove it entirely. llvm-svn: 299087
* [tsan] Add interceptor for xpc_connection_cancel to avoid false positivesKuba Mracek2017-03-302-0/+43
| | | | | | | | TSan reports a false positive when using xpc_connection_cancel. We're missing a happens-before edge from xpc_connection_cancel to the event handler on the same connection. Differential Revision: https://reviews.llvm.org/D31475 llvm-svn: 299086
* [asan] Implement "scribble" flags, which overwrite free'd memory with 0x55Kuba Mracek2017-03-305-0/+141
| | | | | | | | This patch implements "Malloc Scribble" in ASan via "max_free_fill_size" and "free_fill_byte" flags, which can be used to overwrite free()'d memory. We also match the behavior of MallocScribble and MallocPreScribble env vars on macOS (see https://developer.apple.com/library/content/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html), which is a helpful tool to detect use-after-free bugs that happen in non-instrumented code. Differential Revision: https://reviews.llvm.org/D30101 llvm-svn: 299085
* avoid a subshell.Rafael Espindola2017-03-301-6/+6
| | | | | | Instead of using grep -v we can just expand the globs a bit. llvm-svn: 299084
* Spelling mistakes in comments. NFCI. (PR27635)Simon Pilgrim2017-03-3039-50/+50
| | | | llvm-svn: 299083
* Enable leak detection on linux-i686 by defaultFrancis Ricci2017-03-301-2/+1
| | | | | | | | | | | | | | Summary: This is already assumed by the test suite, and by asan_flags.cc. Reviewers: m.ostapenko, vitalybuka, kubamracek, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31462 llvm-svn: 299082
* Use FileCheck instead of [.Rafael Espindola2017-03-301-1/+2
| | | | llvm-svn: 299081
* [ARC][ObjC++] Use ObjC semantic rules for comparisons between a pointer andAlex Lorenz2017-03-302-1/+28
| | | | | | | | | | | | | | | | | | | | an ObjC object pointer When ARC is enabled in Objective-C++, comparisons between a pointer and Objective-C object pointer typically result in errors like this: "invalid operands to a binary expression". This error message can be quite confusing as it doesn't provide a solution to the problem, unlike the non-C++ diagnostic: "implicit conversion of Objective-C pointer type 'id' to C pointer type 'void *' requires a bridged cast" (it also provides fix-its). This commit forces comparisons between pointers and Objective-C object pointers in ARC to use the Objective-C semantic rules to ensure that a better diagnostic is reported. rdar://31103857 Differential Revision: https://reviews.llvm.org/D31177 llvm-svn: 299080
* Move NumRegParameters Module Flag. NFCI.Nirav Dave2017-03-301-6/+5
| | | | llvm-svn: 299079
* [Sema][ObjC] Avoid the "type of property does not match type of accessor"Alex Lorenz2017-03-302-6/+8
| | | | | | | | warning for methods that resemble the setters of readonly properties rdar://30415679 llvm-svn: 299078
* Add LIT_USE_INTERNAL_SHELL to compiler-rt tests.Rafael Espindola2017-03-301-2/+13
| | | | | | | | | | | | | | | I am working on improving our internal bot infrastructure. One thing that is unique to the ps4 is that we want to run the posix tests, but have to execute them on windows. We currently have a local hack to use a shell on windows, but it is pretty much impossible to get all all the tools to play nice with all the heuristics for what is a path and what is a command line option. This adds support LIT_USE_INTERNAL_SHELL and I will then try to fix the tests that fail with it but adding the missing features. llvm-svn: 299077
* Use count instead of grep -c.Rafael Espindola2017-03-302-3/+3
| | | | | | Using count is more common in llvm and avoids a subshell. llvm-svn: 299076
* Test commit.Andrew Ng2017-03-301-11/+11
| | | | | | Correct assertion messages in MachineOperand for some of the setters. llvm-svn: 299075
* Spelling mistakes in comments. NFCI.Simon Pilgrim2017-03-304-6/+6
| | | | | | Based on corrections mentioned in patch for clang for PR27635 llvm-svn: 299074
* Add `replace` interface with range in AtomicChange.Haojian Wu2017-03-303-11/+24
| | | | | | | | | | | | Reviewers: ioeric Reviewed By: ioeric Subscribers: alexshap, klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D31492 llvm-svn: 299073
* Spelling mistakes in comments. NFCI.Simon Pilgrim2017-03-3014-17/+17
| | | | | | Based on corrections mentioned in patch for clang for PR27635 llvm-svn: 299072
* [clang-tidy] fix docs in hicpp checksJonathan Coe2017-03-302-1/+13
| | | | | | Fix for sphinx-doc warnings in r299068. llvm-svn: 299071
* [clang-tidy] fix for linker errors in hicpp checksJonathan Coe2017-03-301-0/+5
| | | | | | Speculative fix for linker errors in r299068. llvm-svn: 299070
* Spelling mistakes in comments. NFCI.Simon Pilgrim2017-03-301-15/+15
| | | | llvm-svn: 299069
* [clang-tidy] add aliases for hicpp moduleJonathan Coe2017-03-3014-5/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add some hicpp checks that can be implmented as alises for existing clang-tidy checks: hicpp-explicit-conversions hicpp-function-size hicpp-named-parameter hicpp-invalid-access-moved hicpp-member-init hicpp-new-delete-operators hicpp-noexcept-move hicpp-special-member-functions hicpp-undelegated-constructor hicpp-use-equals-default hicpp-use-equals-delete hicpp-use-override Reviewers: dberlin, jbcoe, aaron.ballman, alexfh Reviewed By: aaron.ballman Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D30383 Patch By: Jonas Toth llvm-svn: 299068
* Revert "Make naming in Host.h in line with coding standards."Kristof Beyls2017-03-307-56/+56
| | | | | | | | | | | | | | | | | | | This reverts r299062, which caused build failures on Windows. It also reverts the attempts to fix the windows builds in r299064 and r299065. The introduction of namespace llvm::sys::detail makes MSVC, and seemingly also mingw, complain about ambiguity with the existing namespace llvm::detail. E.g.: C:\b\slave\sanitizer-windows\llvm\include\llvm/Support/MathExtras.h(184): error C2872: 'detail': ambiguous symbol C:\b\slave\sanitizer-windows\llvm\include\llvm/Support/PointerLikeTypeTraits.h(31): note: could be 'llvm::detail' C:\b\slave\sanitizer-windows\llvm\include\llvm/Support/Host.h(80): note: or 'llvm::sys::detail' In r299064 and r299065 I tried to fix these ambiguities, based on the errors reported in the log files. It seems however that the build stops early when this kind of error is encountered, and many build-then-fix-iterations on Windows may be needed to fix this. Therefore reverting r299062 for now to get the build working again on Windows. llvm-svn: 299066
* Another attempt fix the Windows buildsKristof Beyls2017-03-301-4/+5
| | | | | | By changing more detail::... to llvm::detail::... llvm-svn: 299065
* Attempt to fix the Windows builds by using llvm::detail::... instead of ↵Kristof Beyls2017-03-303-22/+24
| | | | | | detail::... llvm-svn: 299064
* [globalisel][tablegen] Change Expected<bool> to Error and rename functions.Daniel Sanders2017-03-301-45/+41
| | | | | | | | Functions that still return Expected<X> are now called createAndImport*() Changing the return type was requested in the review comments for r299001 llvm-svn: 299063
* Make naming in Host.h in line with coding standards.Kristof Beyls2017-03-304-30/+27
| | | | | | | Based on post-commit review comments by Chandler Carruth on https://reviews.llvm.org/D31236. Thanks! llvm-svn: 299062
* [sanitizer] Move fread and fwrite interceptors to sanitizer_commonMaxim Ostapenko2017-03-307-40/+104
| | | | | | | | {M, T, E}San have fread and fwrite interceptors, let's move them to sanitizer_common to enable ASan checks as well. Differential Revision: https://reviews.llvm.org/D31456 llvm-svn: 299061
* Refactor getHostCPUName to allow testing on non-native hardware.Kristof Beyls2017-03-303-214/+256
| | | | | | | | | | | | | | | | | | | | | | | | | This refactors getHostCPUName so that for the architectures that get the host cpu info on linux from /proc/cpuinfo, the /proc/cpuinfo parsing logic is present in the build, even if it wasn't built on a linux system for that architecture. Since the code is present in the build, we can then test that code also on other systems, i.e. we don't need to have buildbots setup for all architectures on linux to be able to test this. Instead, developers will test this as part of the regression test run. As an example, a few unit tests are added to test getHostCPUName for ARM running linux. A unit test is preferred over a lit-based test, since the expectation is that in the future, the functionality here will grow over what can be tested with "llc -mcpu=native". This is a preparation step to enable implementing the range of improvements discussed on PR30516, such as adding AArch64 support, support for big.LITTLE systems, reducing code duplication. Differential Revision: https://reviews.llvm.org/D31236 llvm-svn: 299060
* [APInt] Remove references to integerPartWidth outside of APFloat implentation.Craig Topper2017-03-301-3/+3
| | | | | | Turns out integerPartWidth only explicitly defines the width of the tc functions in the APInt class. Functions that aren't used by APInt implementation itself. Many places in the code base already assume APInt is made up of 64-bit pieces. Explicitly assuming 64-bit here doesn't make that situation much worse. A full audit would need to be done if it ever changes. llvm-svn: 299059
* [APInt] Remove references to integerPartWidth and integerPart outside of ↵Craig Topper2017-03-301-3/+2
| | | | | | | | APFloat implentation. Turns out integerPartWidth only explicitly defines the width of the tc functions in the APInt class. Functions that aren't used by APInt implementation itself. Many places in the code base already assume APInt is made up of 64-bit pieces. Explicitly assuming 64-bit here doesn't make that situation much worse. A full audit would need to be done if it ever changes. llvm-svn: 299058
* libc++ testing: fix invalid python syntaxMehdi Amini2017-03-301-1/+1
| | | | llvm-svn: 299057
* libc++ testing: fix assertion around `use_system_cxx_lib`Mehdi Amini2017-03-301-2/+2
| | | | | | | Actually fix (hopefully) the assertions about `use_system_cxx_lib`, the previous attempt failed because I misread the error. llvm-svn: 299056
* libc++ config testing: `use_system_cxx_lib` can be a boolMehdi Amini2017-03-301-1/+1
| | | | | | Fix the libc++ Green Dragon bot. llvm-svn: 299055
* Reexport operator new / delete from libc++abiMehdi Amini2017-03-301-8/+8
| | | | | | | | | | | | | Both libc++ and libc++abi export a weak definition of operator new/delete. On Darwin, this can often cause dirty __DATA in the shared cache when having to switch from one to the other. Instead, libc++ should reexport libc++abi's implementation of these symbols. Patch by: Ted Kremenek <kremenek@apple.com> Differential Revision: https://reviews.llvm.org/D30765 llvm-svn: 299054
* libc++ testing: allow to provide a path for `use_system_cxx_lib`Mehdi Amini2017-03-302-5/+18
| | | | | | | | | | As we're trying to setup testing / bots for all shipping version of libc++ on macOS/iOS, we'll need to be able to pass a path to where to find the dylib for each previous version of the OS. Differential Revision: https://reviews.llvm.org/D31486 llvm-svn: 299053
* Do not pass an explicit reexported symbol list when building libc++ dylib if ↵Mehdi Amini2017-03-301-1/+5
| | | | | | also defining new/delete llvm-svn: 299052
* [libFuzzer] remove a stale flag from tests, run value-profile-strncmp.test ↵Kostya Serebryany2017-03-304-4/+4
| | | | | | longer (hopefully, will fix the OSX bot) llvm-svn: 299051
* [XRay][compiler-rt] Spell REQUIRES properly for x86_64-linuxDean Michael Berris2017-03-302-2/+2
| | | | | | | | | | Until llvm-xray starts running/supporting binaries that are not ELF64 we only run the FDR tests on x86_64-linux. Previous changes caused the tests to not actually run on x86_64. Follow-up on D31454. llvm-svn: 299050
* [XRay][compiler-rt] Only run tests using llvm-xray in x86_64 for nowDean Michael Berris2017-03-302-3/+4
| | | | | | Followup on D31454. llvm-svn: 299049
* [XRay][compiler-rt] XFAIL the FDR mode tests on aarch64-42vmaDean Michael Berris2017-03-302-0/+3
| | | | | | Followup on D31454. llvm-svn: 299048
* [DAGCombine] A shuffle of a splat is always the splat itselfZvi Rackover2017-03-302-10/+12
| | | | | | | | | | | | | | | | | | | | Summary: Add a simplification: shuffle (splat-shuffle), undef, M --> splat-shuffle Fixes pr32449 Patch by Sanjay Patel Reviewers: eli.friedman, RKSimon, spatel Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31426 llvm-svn: 299047
* [libFuzzer] best effort support for -fsanitize-coverage=trace-pc ↵Kostya Serebryany2017-03-305-1/+32
| | | | | | instrumentation. It is less efficient and precise than -fsanitize-coverage=trace-pc-guard, but still works llvm-svn: 299046
OpenPOWER on IntegriCloud