summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Disable TermFolding in LoopSimplifyCFG until PR39783 is fixedMax Kazantsev2018-11-291-1/+1
| | | | llvm-svn: 347844
* [LoopStrengthReduce] ComplexityLimit as an optionSam Parker2018-11-293-3/+125
| | | | | | | | Convert ComplexityLimit into a command line value. Differential Revision: https://reviews.llvm.org/D54899 llvm-svn: 347843
* [LLDB] - Fix setting the breakpoints when -gsplit-dwarf and DWARF 5 were ↵George Rimar2018-11-294-4/+140
| | | | | | | | | | | | | | | | used for building the executable. The issue happens because starting from DWARF v5 DW_AT_addr_base attribute should be used instead of DW_AT_GNU_addr_base. LLDB does not do that and we end up reading the .debug_addr header as section content (as addresses) instead of skipping it and reading the real addresses. Then LLDB is unable to match 2 similar locations and thinks they are different. Differential revision: https://reviews.llvm.org/D54751 llvm-svn: 347842
* [Inliner] Modify the merging of min-legal-vector-width attribute to better ↵Craig Topper2018-11-292-13/+32
| | | | | | | | | | handle when the caller or callee don't have the attribute. Lack of an attribute means that the function hasn't been checked for what vector width it requires. So if the caller or the callee doesn't have the attribute we should make sure the combined function after inlining does not have the attribute. If the caller already doesn't have the attribute we can just avoid adding it. Otherwise if the callee doesn't have the attribute just remove the caller's attribute. llvm-svn: 347841
* [Inliner] Add test for merging of min-legal-vector-width function attribute.Craig Topper2018-11-291-0/+29
| | | | | | This should have been added in r337844, but apparently was I failed to 'git add' the file. llvm-svn: 347840
* [CGP] Improve compile time for complex addressing modeSerguei Katkov2018-11-291-106/+58
| | | | | | | | | | | | This is a fix for PR39625 with improvement the compile time by reducing the number of intermediate Phi nodes created. Reviewers: john.brawn, reames Reviewed By: john.brawn Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54932 llvm-svn: 347839
* Revert "[TextAPI] Fix a memory leak in the TBD reader."Juergen Ributzka2018-11-291-4/+2
| | | | llvm-svn: 347838
* [TextAPI] Fix a memory leak in the TBD reader.Juergen Ributzka2018-11-291-2/+4
| | | | | | | This fixes an issue where we were leaking the YAML document if there was a parsing error. llvm-svn: 347837
* [TextAPI] Switch back to a custom Platform enum.Juergen Ributzka2018-11-296-44/+55
| | | | | | | | | Moving to PlatformType from BinaryFormat had some UB fallout when handing unknown platforms or malformed input files. This should fix the sanitizer bots. llvm-svn: 347836
* [X86] Correct comment. NFCCraig Topper2018-11-291-1/+1
| | | | llvm-svn: 347835
* Add Hurd target to Clang driver (2/2)Kristina Brooks2018-11-2916-2/+324
| | | | | | | | | | | | | | | This adds Hurd toolchain support to Clang's driver in addition to handling translating the triple from Hurd-compatible form to the actual triple registered in LLVM. (Phabricator was stripping the empty files from the patch so I manually created them) Patch by sthibaul (Samuel Thibault) Differential Revision: https://reviews.llvm.org/D54379 llvm-svn: 347833
* Add Hurd target to LLVMSupport (1/2)Kristina Brooks2018-11-293-2/+17
| | | | | | | | | | | Add the required target triples to LLVMSupport to support Hurd in LLVM (formally `pc-hurd-gnu`). Patch by sthibaul (Samuel Thibault) Differential Revision: https://reviews.llvm.org/D54378 llvm-svn: 347832
* [PowerPC] Fix a conversion is not considered when the ISD::BR_CC node making ↵Li Jia He2018-11-292-16/+25
| | | | | | | | | | | | | | | | the instruction selection Summary: A signed comparison of i1 values produces the opposite result to an unsigned one if the condition code includes less-than or greater-than. This is so because 1 is the most negative signed i1 number and the most positive unsigned i1 number. The CR-logical operations used for such comparisons are non-commutative so for signed comparisons vs. unsigned ones, the input operands just need to be swapped. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D54825 llvm-svn: 347831
* [WebAssembly] Update docsSam Clegg2018-11-292-20/+93
| | | | | | | | | This is an reland of rL343155 which got reverted because of a sphinx failure on the buildbot. Differential Revision: https://reviews.llvm.org/D54982 llvm-svn: 347830
* [PowerPC] [NFC] Add test cases to the ISD::BR_CC node in the instruction ↵Li Jia He2018-11-291-0/+602
| | | | | | | | | | | | | | | | | | | | | | | | | selection Add the following test case for the ISD::BR_CC node in the instruction selection define i64 @testi64slt(i64 %c1, i64 %c2, i64 %c3, i64 %c4, i64 %a1, i64 %a2) #0 { entry: %cmp1 = icmp eq i64 %c3, %c4 %cmp3tmp = icmp eq i64 %c1, %c2 %cmp3 = icmp slt i1 %cmp3tmp, %cmp1 br i1 %cmp3, label %iftrue, label %iffalse iftrue: ret i64 %a1 iffalse: ret i64 %a2 } The data type i64 can be replaced by i32, i64, float, double
 And condition codes can be replaced by: SETEQ, SETEN, SELT, SETLE, SETGT, SETGE,SETULT, SETULE, SSETGT, and SETUGE Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D54824 llvm-svn: 347828
* [TextAPI] TBD Reader/Writer (bot fixes: take 2)Juergen Ributzka2018-11-292-8/+30
| | | | | | Replace the tuple with a struct to work around an explicit constructor bug. llvm-svn: 347827
* NFC. Use unsigned type for uses counter in CaptureTrackingArtur Pilipenko2018-11-291-2/+2
| | | | llvm-svn: 347826
* [Documentation] Try to fix build failure in ↵Eugene Zelenko2018-11-291-4/+4
| | | | | | cppcoreguidelines-narrowing-conversions documentation llvm-svn: 347825
* [TextAPI] TBD Reader/Writer (bot fixes)Juergen Ributzka2018-11-293-10/+12
| | | | | | Trying if switching from a vector to an array will appeas the bots. llvm-svn: 347824
* [TextAPI] TBD Reader/WriterJuergen Ributzka2018-11-2925-0/+3229
| | | | | | | | | | | | | | | | | Add basic infrastructure for reading and writting TBD files (version 1 - 3). The TextAPI library is not used by anything yet (besides the unit tests). Tool support will be added in a separate commit. The TBD format is currently documented in the implementation file (TextStub.cpp). https://reviews.llvm.org/D53945 Update: This contains changes to fix issues discovered by the bots: - add parentheses to silence warnings. - rename variables - use PlatformType from BinaryFormat llvm-svn: 347823
* [driver] Fix --core/-c and add testJonas Devlieghere2018-11-294-50/+52
| | | | | | | | | | | Because the optarg variable was shadowed we didn't notice we weren't extracting the value from the option. This patch fixes that and renames the variable to prevent this from happening in the future. I also added two tests to check the error output for --core and --file when the given value doesn't exist. llvm-svn: 347821
* [ELF] --gdb-index: use lower_bound to compute relative CU index in the ↵Fangrui Song2018-11-292-19/+43
| | | | | | | | | | | | | | | | | | | | | | object file Summary: This reinstates what I originally intended to do in D54361. It removes the assumption that .debug_gnu_pubnames has increasing CuOffset. Now we do better than gold here: when .debug_gnu_pubnames contains multiple sets, gold would think every set has the same CU index as the first set (incorrect). Reviewed By: ruiu Reviewers: ruiu, dblaikie, espindola Subscribers: emaste, arichardson, arphaman, llvm-commits Differential Revision: https://reviews.llvm.org/D54483 llvm-svn: 347820
* [x86] try select simplification for target-specific nodesSanjay Patel2018-11-282-1/+57
| | | | | | | | | | | | | This failed to select (which might be a separate bug) in X86ISelDAGToDAG because we try to create a select node that can be simplified away after rL347227. This change avoids the problem by simplifying the SHRUNKBLEND node sooner. In the test case, we manage to realize that the true/false values of the select (SHRUNKBLEND) are the same thing, so it simplifies away completely. llvm-svn: 347818
* [driver] Some NFC cleanupJonas Devlieghere2018-11-282-30/+33
| | | | | | | This patch includes some small things I noticed while refactoring the driver but didn't want to include in that patch. llvm-svn: 347817
* Revert "Move internal usages of `alignof`/`__alignof` to use ↵Eric Fiselier2018-11-2810-90/+44
| | | | | | | | | | | `_LIBCPP_ALIGNOF`. " This reverts commit 087f065cb0c7463f521a62599884493aaee2ea12. The tests were failing on 32 bit builds, and I don't have time to clean them up right now. I'll recommit tomorrow with fixed tests. llvm-svn: 347816
* Ensure that test clang-tidy/export-relpath.cpp works with Windows path ↵Matthew Voss2018-11-281-1/+1
| | | | | | separators. llvm-svn: 347815
* Make standalone build find tabelgenJonas Devlieghere2018-11-281-0/+1
| | | | | | | The standalone build couldn't find tablegen because we didn't include it. This patch rectifies that. llvm-svn: 347814
* [lldb] Add GetCurrentException APIs to SBThread, add frame recognizer for ↵Kuba Mracek2018-11-2812-10/+187
| | | | | | | | | | | | | | objc_exception_throw for Obj-C runtimes This adds new APIs and a command to deal with exceptions (mostly Obj-C exceptions): SBThread and Thread get GetCurrentException API, which returns an SBValue/ValueObjectSP with the current exception for a thread. "Current" means an exception that is currently being thrown, caught or otherwise processed. In this patch, we only know about the exception when in objc_exception_throw, but subsequent patches will expand this (and add GetCurrentExceptionBacktrace, which will return an SBThread/ThreadSP containing a historical thread backtrace retrieved from the exception object. Currently unimplemented, subsequent patches will implement this). Extracting the exception from objc_exception_throw is implemented by adding a frame recognizer. This also add a new sub-command "thread exception", which prints the current exception. Differential Revision: https://reviews.llvm.org/D43886 llvm-svn: 347813
* Allow cpu-dispatch forward declarations.Erich Keane2018-11-283-13/+15
| | | | | | | | As a followup to r347805, allow forward declarations of cpu-dispatch and cpu-specific for the same reasons. Change-Id: Ic1bde9be369b1f8f1d47d58e6fbdc2f9dfcdd785 llvm-svn: 347812
* Ensure sanitizer check function calls have a !dbg locationAdrian Prantl2018-11-283-0/+52
| | | | | | | | | | | | | | | | | | | | | | Function calls without a !dbg location inside a function that has a DISubprogram make it impossible to construct inline information and are rejected by the verifier. This patch ensures that sanitizer check function calls have a !dbg location, by carrying forward the location of the preceding instruction or by inserting an artificial location if necessary. This fixes a crash when compiling the attached testcase with -Os. rdar://problem/45311226 Differential Revision: https://reviews.llvm.org/D53459 Note: This reapllies r344915, modified to reuse the IRBuilder's DebugLoc if one exists instead of picking the one from CGDebugInfo since the latter may get reset when emitting thunks such as block helpers in the middle of emitting another function. llvm-svn: 347810
* Revert "[TextAPI] TBD Reader/Writer"Juergen Ributzka2018-11-2825-3234/+0
| | | | | | Reverting to unbreak bots. llvm-svn: 347809
* [TextAPI] TBD Reader/WriterJuergen Ributzka2018-11-2825-0/+3234
| | | | | | | | | | | | | Add basic infrastructure for reading and writting TBD files (version 1 - 3). The TextAPI library is not used by anything yet (besides the unit tests). Tool support will be added in a separate commit. The TBD format is currently documented in the implementation file (TextStub.cpp). https://reviews.llvm.org/D53945 llvm-svn: 347808
* [DebugInfo] NFC Clang test changes for: IR/Bitcode changes for DISubprogram ↵Paul Robinson2018-11-2824-74/+78
| | | | | | | | flags. Differential Revision: https://reviews.llvm.org/D54756 llvm-svn: 347807
* [DebugInfo] IR/Bitcode changes for DISubprogram flags.Paul Robinson2018-11-2819-59/+295
| | | | | | | | | Packing the flags into one bitcode word will save effort in adding new flags in the future. Differential Revision: https://reviews.llvm.org/D54755 llvm-svn: 347806
* Correct 'target' default behavior on redecl, allow forward declaration.Erich Keane2018-11-285-12/+106
| | | | | | | | | | | | | | | | | | | | | | | Declarations without the attribute were disallowed because it would be ambiguous which 'target' it was supposed to be on. For example: void ___attribute__((target("v1"))) foo(); void foo(); // Redecl of above, or fwd decl of below? void ___attribute__((target("v2"))) foo(); However, a first declaration doesn't have that problem, and erroring prevents it from working in cases where the forward declaration is useful. Additionally, a forward declaration of target==default wouldn't properly cause multiversioning, so this patch fixes that. The patch was not split since the 'default' fix would require implementing the same check for that case, followed by undoing the same change for the fwd-decl implementation. Change-Id: I66f2c5bc2477bcd3f7544b9c16c83ece257077b0 llvm-svn: 347805
* [Coverage] Specify the Itanium ABI triple for a C++ testVedant Kumar2018-11-281-1/+1
| | | | llvm-svn: 347804
* [Coverage] Do not visit artificial stmts in defaulted methods (PR39822)Vedant Kumar2018-11-282-4/+33
| | | | | | | | | | | | | | | | | | | | | | There is no reason to emit coverage mappings for artificial statements contained within defaulted methods, as these statements are not visible to users. Only emit a mapping for the body of the defaulted method (clang treats the text of the "default" keyword as the body when reporting locations). This allows users to see how often the default method is called, but trims down the coverage mapping by skipping visitation of the children of the method. The immediate motivation for this change is that the lexer's getPreciseTokenLocEnd API cannot return the correct location when given an artificial statement (with a somewhat made-up location) as an input. Test by Orivej Desh! Fixes llvm.org/PR39822. llvm-svn: 347803
* [OpenMP] Rename ompt_mutex_impl_unknown to ompt_mutex_impl_noneJonathan Peyton2018-11-284-6/+6
| | | | | | | | | | | This change renames ompt_mutex_impl_unknown to ompt_mutex_impl_none, following the name change in the specification. Patch by Hansang Bae Differential Revision: https://reviews.llvm.org/D54347 llvm-svn: 347802
* [OpenMP] Minor cleanup of debug codeJonathan Peyton2018-11-281-2/+2
| | | | | | | | | | | * Fix calculation of string length. * Remove NULL-check of pointer which has been dereferenced. Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D54948 llvm-svn: 347801
* [OpenMP] Fixed possible array out of bound accessJonathan Peyton2018-11-281-0/+1
| | | | | | | | | | | | | There is low probability that array th_hot_teams can be accessed out of bound (when many nested levels are requested to keep hot teams via KMP_HOT_TEAMS_MAX_LEVEL). The patch adds the check of index that fixes the problem. Patch by Andrey Churbanov Differential Revision: https://reviews.llvm.org/D54950 llvm-svn: 347800
* [OpenMP] Add omp_get_device_num() and update several other device API functionsJonathan Peyton2018-11-2811-47/+98
| | | | | | | | | | | | | Add omp_get_device_num() function for 5.0 which returns the number of the device the current thread is running on. Also, did some cleanup and updating of device API functions to make them into weak functions that should be replaced with libomptarget functions when libomptarget is present. Patch by Terry Wilmarth Differential Revision: https://reviews.llvm.org/D54342 llvm-svn: 347799
* [unittests] Fix the File System Test on WindowsStella Stamenova2018-11-281-8/+0
| | | | | | Two of the file system tests are failing on Windows - this updates them to expect the correct values after the refactor of the file system code. llvm-svn: 347796
* Reapply "[llvm-mca] Return the total number of cycles from method ↵Andrea Di Biagio2018-11-283-6/+10
| | | | | | | | | | | | | | | | | | | | | | Pipeline::run()." This reapplies r347767 (originally reviewed at: https://reviews.llvm.org/D55000) with a fix for the missing std::move of the Error returned by the call to Pipeline::runCycle(). Below is the original commit message from r347767. If a user only cares about the overall latency, then the best/quickest way is to change method Pipeline::run() so that it returns the total number of cycles to the caller. When the simulation pipeline is run, the number of cycles (or an error) is returned from method Pipeline::run(). The advantage is that no hardware event listener is needed for computing that latency. So, the whole process should be faster (and simpler - at least for that particular use case). llvm-svn: 347795
* Revert "[ASTImporter] Changed use of Import to Import_New in ASTImporter."Davide Italiano2018-11-282-377/+320
| | | | | | This broke the lldb bots. llvm-svn: 347794
* [OPENMP]Fix emission of the target regions in virtual functions.Alexey Bataev2018-11-282-1/+28
| | | | | | | | Fixed emission of the target regions found in the virtual functions. Previously we may end up with the situation when those regions could be skipped. llvm-svn: 347793
* Revert "[clang-tools-extra] r347753 - [clangd] Build and test IndexBenchmark ↵Matthew Voss2018-11-283-11/+8
| | | | | | | | | in check-clangd" This revision was causing failures on the buildbots, and our internal CI. See: http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/20856 llvm-svn: 347792
* [NFC] Move MultIversioning::Type into Decl so that it can be used inErich Keane2018-11-284-45/+62
| | | | | | | CodeGen Change-Id: I32b14edca3501277e0e65672eafe3eea38c6f9ae llvm-svn: 347791
* Fix bad _LIBCPP_ALIGNOF testEric Fiselier2018-11-281-1/+0
| | | | llvm-svn: 347790
* Implement P0966 - string::reserve should not shrinkMarshall Clow2018-11-283-4/+13
| | | | llvm-svn: 347789
* (no commit message)Julian Lettner2018-11-281-1/+1
| | | | llvm-svn: 347788
OpenPOWER on IntegriCloud