summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Add support for v16i32 UMUL_LOHI/SMUL_LOHICraig Topper2017-09-263-729/+68
| | | | | | | | | | | | | | Summary: This patch extends the v8i32/v4i32 custom lowering to support v16i32 Reviewers: zvi, RKSimon Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38274 llvm-svn: 314221
* [OPENMP] Fix handling of implicit mapping of array sections.Alexey Bataev2017-09-262-2/+5
| | | | llvm-svn: 314220
* Invalidate symbolizer module list from dlopen/dlclose interceptorsFrancis Ricci2017-09-264-4/+14
| | | | | | | | | | | | | | Summary: The module list should only be invalidated by dlopen and dlclose, so the symbolizer should only re-generate it when we've hit one of those functions. Reviewers: kubamracek, rnk, vitalybuka Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37268 llvm-svn: 314219
* [analyzer] Keep track of design discusions as part of analyzer documentation.Artem Dergachev2017-09-261-0/+321
| | | | | | | | | | | | Create a directory to store discussions on potentially useful features that are not yet implemented in the analyzer. Fill it with a discussion on representing checker-specific parts of the program state for C++ object modeling, that occured in D35216. Differential Revision: https://reviews.llvm.org/D36737 llvm-svn: 314218
* [OpenMP] Don't throw cudalib not found error if only front-end is required.Gheorghe-Teodor Bercea2017-09-262-0/+14
| | | | | | | | | | | | | | Summary: If we only use the compiler front-end, do not throw an error about the cuda device library not being found. This allows the front-end to be run on systems where no Cuda installation is found. Reviewers: Hahnfeld, ABataev, carlo.bertolli, caomhin, tra Reviewed By: tra Subscribers: hfinkel, tra, cfe-commits Differential Revision: https://reviews.llvm.org/D37914 llvm-svn: 314217
* [Hexagon] Fix a typo: #ifndef DEBUG -> #ifndef NDEBUGKrzysztof Parzyszek2017-09-261-1/+1
| | | | llvm-svn: 314216
* Revert commit 314210.Gheorghe-Teodor Bercea2017-09-261-30/+0
| | | | llvm-svn: 314215
* [Hexagon] Fix initialization of HexagonSubtargetKrzysztof Parzyszek2017-09-262-38/+18
| | | | | | | Make sure that "initializeSubtargetDependencies" sets all members that InstrInfo and the like may depend on. llvm-svn: 314214
* [mips] Accept but ignore -m(no-)branch-likelySimon Dardis2017-09-262-0/+14
| | | | | | | | | | | | | -mbranch-likely and -mno-branch-likely are used in some build systems for some MIPS targets. Accept these options but ignore them as they are an (de)optimiztion hint, and that branch likely instructions were deprecated but not removed from MIPS32 and MIPS64 ISAs. Reviewers: atanasyan, nitesh.jain Differential Revision: https://reviews.llvm.org/D38168 llvm-svn: 314213
* [ScopInfo] Allow PHI nodes that reference an error blockTobias Grosser2017-09-262-2/+73
| | | | | | As long as these PHI nodes are only referenced by terminator instructions. llvm-svn: 314212
* [clang-format] Add ext/ to google include categoriesKrasimir Georgiev2017-09-261-1/+2
| | | | | | | | | | | | | | Summary: This adds an ext/ header include category for google style. Reviewers: djasper Reviewed By: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D38243 llvm-svn: 314211
* [OpenMP] Add an additional test for D34888Gheorghe-Teodor Bercea2017-09-261-0/+30
| | | | | | | | | | | | | | Summary: Test for checking if the mapping is performed correctly. This is a test initially included in Patch https://reviews.llvm.org/D29905 Reviewers: Hahnfeld, carlo.bertolli, caomhin Reviewed By: Hahnfeld Subscribers: tra, cfe-commits Differential Revision: https://reviews.llvm.org/D38040 llvm-svn: 314210
* Fix TBAA information for reference accessesIvan A. Kosarev2017-09-262-2/+31
| | | | | | | | | This patch fixes clang to decorate reference accesses as pointers and not as "omnipotent chars". Differential Revision: https://reviews.llvm.org/D38074 llvm-svn: 314209
* [dwarfdump] Skip 'stripped' sectionsJonas Devlieghere2017-09-267-0/+39
| | | | | | | | | | | | | | | | | | | When dsymutil generates the companion file, its strips all unnecessary sections by omitting their body and setting the offset in their corresponding load command to zero. One such section is the .eh_frame section, as it contains runtime information rather than debug information and is part of the __TEXT segment. When reading this section, we would just read the number of bytes specified in the load command, starting from offset 0 (i.e. the beginning of the file). Rather than trying to parse this obviously invalid section, dwarfdump now skips this. Differential revision: https://reviews.llvm.org/D38135 llvm-svn: 314208
* [X86][XOP] Merge rotation opcodes with AVX512 equivalents. NFCI.Simon Pilgrim2017-09-265-26/+19
| | | | | | | | The XOP rotations act as ROTL with +ve values and ROTR with -ve values, which means that we can treat them all as ROTL with unsigned modulo. We already check that we're only trying to lower as ROTL for XOP rotations. Differential Revision: https://reviews.llvm.org/D37949 llvm-svn: 314207
* [DSE] Merge stores when the later store only writes to memory locations the ↵Sanjay Patel2017-09-265-5/+494
| | | | | | | | | | | | | | | | | | | | | | | | | | | early store also wrote to (2nd try) This is a 2nd attempt at: https://reviews.llvm.org/rL310055 ...which was reverted at rL310123 because of PR34074: https://bugs.llvm.org/show_bug.cgi?id=34074 In this version, we break out of the inner loop after we successfully merge and kill a pair of stores. In the earlier rev, we were continuing instead, which meant we could process the invalid info from a now dead store. Original commit message (authored by Filipe Cabecinhas): This fixes PR31777. If both stores' values are ConstantInt, we merge the two stores (shifting the smaller store appropriately) and replace the earlier (and larger) store with an updated constant. In the future we should also support vectors of integers. And maybe float/double if we can. Differential Revision: https://reviews.llvm.org/D30703 llvm-svn: 314206
* [OPENMP] Generate implicit map|firstprivate clauses for target-basedAlexey Bataev2017-09-2615-472/+402
| | | | | | | | | | directives. If the variable is used in the target-based region but is not found in any private|mapping clause, then generate implicit firstprivate|map clauses for these implicitly mapped variables. llvm-svn: 314205
* [ELF] - Remove wrong comment from testcase.George Rimar2017-09-261-2/+0
| | | | | | | | | | | | | | It was introduced by me in D37059. Comment was saying that Weak binding is incorrect for 'foo' symbol and that should be true for symbol in final output. But at that place LTO temporarily file was checked, where Weak binding for 'foo' is fine as LTO changes binding for 'LinkerRedefined' symbols internally to prevent IPO. Binding for 'foo' in final output is correctly set to Global and that tested just few lines below in the same testcase. llvm-svn: 314204
* [x86] fix pr29061Coby Tayree2017-09-262-6/+52
| | | | | | | | | | https://bugs.llvm.org//show_bug.cgi?id=29061 Don't try referencing REX-needed regs when not on 64bit mode Aligns to GCC Differetial Revision: https://reviews.llvm.org/D37801 llvm-svn: 314203
* Tidyup P->getComplexPatternInfo call by moving it inside if( != NULL) test. ↵Simon Pilgrim2017-09-261-3/+1
| | | | | | NFCI. llvm-svn: 314202
* Don't move llvm.localescape outside the entry block in the GCOV profiling passSylvestre Ledru2017-09-261-1/+11
| | | | | | | | | | | | | | | | | Summary: This fixes https://bugs.llvm.org/show_bug.cgi?id=34714. Patch by Marco Castelluccio Reviewers: rnk Reviewed By: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38224 llvm-svn: 314201
* [mips][asan] Fix preinstalled_signal.cc test for mipsSimon Dardis2017-09-261-0/+6
| | | | | | | | Linux for mips has a non-standard layout for the kernel sigaction struct. Adjust the layout by the minimally amount to get the test to pass, as we don't require the usage of the restorer function. llvm-svn: 314200
* Revert "[X86] Make all the NOREX CodeGenOnly instructions into postRA ↵Benjamin Kramer2017-09-2612-70/+60
| | | | | | | | pseudos like the NOREX version of TEST." Makes llc crash. This reverts commit r314151. llvm-svn: 314199
* [dsymutil] Better support for symbol aliasesJonas Devlieghere2017-09-265-0/+43
| | | | | | | | | | | This patch adds logic to follow a symbol's aliases when the symbol name cannot be found in the current object file. It checks the main binary for the symbol's address and queries the current object for its aliases (symbols with the same address) before printing out a warning. Differential revision: https://reviews.llvm.org/D38230 llvm-svn: 314198
* Skip building unused parts when targeting SJLJMartin Storsjo2017-09-264-4/+6
| | | | | | | | | | | When SJLJ exceptions are used, those functions aren't used. This fixes build failures on ARM with SJLJ enabled (e.g. on armv7/iOS) when built using the CMake project files. Differential Revision: https://reviews.llvm.org/D38249 llvm-svn: 314197
* Correct data types in the _Unwind_FunctionContext structMartin Storsjo2017-09-261-2/+2
| | | | | | | | | This makes it match the definition used within llvm and in libgcc, we previously got the wrong layout in 64 bit environments. Differential Revision: https://reviews.llvm.org/D38247 llvm-svn: 314196
* [X86] Finishing broadcastf32x2 and broadcasti32x2 intrinsics lowering to IR. ↵Uriel Korach2017-09-267-145/+114
| | | | | | | | | | | | llvm side. Removing X86 broadcast(f/i)32x2 intrinsics from llvm. Adding autoUpgrade support. Moving matching tests from avx512dq-intrinsics.ll to avx512dq-intrinsics-upgrade.ll and from avx512dqvl-intrinsics.ll to avx512dqvl-intrinsics-upgrade.ll. Differential Revision: https://reviews.llvm.org/D38220 llvm-svn: 314195
* [XRay] Avoid actual linking when testing the driverDean Michael Berris2017-09-261-5/+5
| | | | | | | | Use -### in the command to see just look for the output of -v. Follow-up to D38226. llvm-svn: 314194
* [XRay] Run command once without piping to FileCheckDean Michael Berris2017-09-261-0/+2
| | | | | | | | This allows us to debug the failures that come up from the build bots. Follow-up to D38226. llvm-svn: 314193
* Speed up SymbolTable::insert().Rui Ueyama2017-09-261-2/+6
| | | | | | | | | | | | | | | | | SymbolTable::insert() is a hot path function. When linking a clang debug build, the function is called 3.7 million times. The total amount of "Name" string contents is 300 MiB. That means this `Name.find("@@")` scans almost 300 MiB of data. That's far from negligible. StringRef::find(StringRef) uses a sophisticated algorithm, but the function is slow for a short needle. This patch replaces it with StringRef::find(char). This patch alone speeds up a clang debug build link time by 0.5 seconds from 8.2s to 7.7s. That's 6% speed up. It seems too good for this tiny change, but looks like it's real. llvm-svn: 314192
* [XRay] Only run shared tests when 'enable_shared' is trueDean Michael Berris2017-09-262-1/+4
| | | | | | Follow-up to D38226. llvm-svn: 314191
* [XRay] Remove -fPIC from shared build test.Dean Michael Berris2017-09-261-1/+1
| | | | | | Follow-up to D38226. llvm-svn: 314190
* [XRay] Stop running tests for 'amd64', and remove -fPIE from tests.Dean Michael Berris2017-09-262-4/+2
| | | | | | Follow-up to D38226. llvm-svn: 314189
* [XRay][Driver] Do not link in XRay runtime in shared libsDean Michael Berris2017-09-263-0/+40
| | | | | | | | | | | | | | | | | | | | Summary: This change ensures that we don't link in the XRay runtime when building shared libraries with clang. This doesn't prevent us from building shared libraris tht have XRay instrumentation sleds, but it does prevent us from linking in the static XRay runtime into a shared library. The XRay runtime currently doesn't support dynamic registration of instrumentation sleds in shared objects, which we'll start enabling in the future. That work has to happen in the back-end and in the runtime. Reviewers: rnk, pelikan Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D38226 llvm-svn: 314188
* CodeGenModule: Adapt to LLVM TargetLibraryInfo changesMatthias Braun2017-09-261-8/+2
| | | | | | | | Adapt to LLVM TargetLibraryInfo changes in r314185. See also https://reviews.llvm.org/D38106 and https://reviews.llvm.org/D37891 llvm-svn: 314187
* CMake: Add option to set LLVM_ENABLE_DUMPMatthias Braun2017-09-262-0/+6
| | | | | | Differential Revision: https://reviews.llvm.org/D38267 llvm-svn: 314186
* TargetLibraryInfo: Stop guessing wchar_t sizeMatthias Braun2017-09-266-16/+32
| | | | | | | | | | | | | | Usually the frontend communicates the size of wchar_t via metadata and we can optimize wcslen (and possibly other calls in the future). In cases without the wchar_size metadata we would previously try to guess the correct size based on the target triple; however this is fragile to keep up to date and may miss users manually changing the size via flags. Better be safe and stop guessing and optimizing if the frontend didn't communicate the size. Differential Revision: https://reviews.llvm.org/D38106 llvm-svn: 314185
* [AVR] Fix the build after setting alignment to 1 in r314179Dylan McKay2017-09-263-9/+9
| | | | | | Changing all types to be byte-aligned broke a small number of tests. llvm-svn: 314183
* [AVR] Prefer BasicBlock::getIterator over Function::begin()Dylan McKay2017-09-261-1/+1
| | | | | | Thanks to Eli Friedman for the suggestion. llvm-svn: 314182
* Split MergeSyntheticSection into Merge{Tail,NoTail}Section.Rui Ueyama2017-09-262-25/+38
| | | | | | | This patch alone is neutral in terms of code readability, but this change makes a following patch easier to read. llvm-svn: 314181
* [AVR] When lowering shifts into loops, put newly generated MBBs in the sameDylan McKay2017-09-261-2/+4
| | | | | | | | | | | spot as the original MBB Discovered in avr-rust/rust#62 https://github.com/avr-rust/rust/issues/62 Patch by Gergo Erdi. llvm-svn: 314180
* [AVR] Use 1-byte alignment for all data typesDylan McKay2017-09-261-1/+1
| | | | | | | | | | | | | | This was an oversight in the original backend data layout. The AVR architecture does not have the concept of unaligned loads - all loads/stores from all addresses are aligned to one byte. Discovered in avr-rust issue #64 https://github.com/avr-rust/rust/issues/64 Patch By Gergo Erdi. llvm-svn: 314179
* Revert "[XRay][Driver] Do not link in XRay runtime in shared libs"Dean Michael Berris2017-09-262-19/+0
| | | | | | Reverts r314177. llvm-svn: 314178
* [XRay][Driver] Do not link in XRay runtime in shared libsDean Michael Berris2017-09-252-0/+19
| | | | | | | | | | | | | | | | | | | | Summary: This change ensures that we don't link in the XRay runtime when building shared libraries with clang. This doesn't prevent us from building shared libraris tht have XRay instrumentation sleds, but it does prevent us from linking in the static XRay runtime into a shared library. The XRay runtime currently doesn't support dynamic registration of instrumentation sleds in shared objects, which we'll start enabling in the future. That work has to happen in the back-end and in the runtime. Reviewers: rnk, pelikan Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D38226 llvm-svn: 314177
* [docs] llvm-cov: Make docs for boolean options more consistentVedant Kumar2017-09-251-8/+9
| | | | llvm-svn: 314176
* [llvm-cov] Warn if -show-functions is used without query filesVedant Kumar2017-09-252-2/+12
| | | | | | | | | | llvm-cov's report mode does not print any output when -show-functions is specified and no source files are specified. This can be surprising, so the tool should at least print out an error message when this happens. rdar://problem/34636859 llvm-svn: 314175
* Modernize commentsAdrian Prantl2017-09-251-13/+15
| | | | llvm-svn: 314174
* Modernize commentsAdrian Prantl2017-09-251-15/+16
| | | | llvm-svn: 314173
* clang-format/java: Always put space after `assert` keyword.Nico Weber2017-09-252-0/+3
| | | | | | Previously, it was missing if the expression after the assert started with a (. llvm-svn: 314172
* Allow specifying sanitizers in blacklistsVlad Tsyrklevich2017-09-2522-88/+310
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is the follow-up patch to D37924. This change refactors clang to use the the newly added section headers in SpecialCaseList to specify which sanitizers blacklists entries should apply to, like so: [cfi-vcall] fun:*bad_vcall* [cfi-derived-cast|cfi-unrelated-cast] fun:*bad_cast* The SanitizerSpecialCaseList class has been added to allow querying by SanitizerMask, and SanitizerBlacklist and its downstream users have been updated to provide that information. Old blacklists not using sections will continue to function identically since the blacklist entries will be placed into a '[*]' section by default matching against all sanitizers. Reviewers: pcc, kcc, eugenis, vsk Reviewed By: eugenis Subscribers: dberris, cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D37925 llvm-svn: 314171
OpenPOWER on IntegriCloud