summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SemaObjC] Properly handle mix between type arguments and protocols.Bruno Cardoso Lopes2016-04-134-9/+66
| | | | | | | | | | | | | | | | | | | | | | | Under certain conditions clang currently fails to properly diagnostic ObjectC parameter list when type args and protocols are mixed in the same list. This happens when the first item in the parameter list is a (1) protocol, (2) unknown type or (3) a list of protocols/unknown types up to the first type argument. Fix the problem to report the proper error, example: NSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@"a"]; NSNumber *bar = foo[0]; NSLog(@"%@", bar); $ clang ... x.m:7:13: error: angle brackets contain both a type ('NSValue') and a protocol ('M') NSArray<M, NSValue *, NSURL, NSArray <id <M>>> *foo = @[@"a"]; ~ ^ Differential Revision: http://reviews.llvm.org/D18997 rdar://problem/22204367 llvm-svn: 266245
* AMDGPU/SI: Add support for spilling VGPRs without having to scavenge registersTom Stellard2016-04-132-11/+29
| | | | | | | | | | | | | | | Summary: When we are spilling SGPRs to scratch memory, we usually don't have free SGPRs to do the address calculation, so we need to re-use the ScratchOffset register for the calculation. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D18917 llvm-svn: 266244
* [x86] add tests to show potential BMI optimizationSanjay Patel2016-04-131-0/+68
| | | | llvm-svn: 266243
* Make sure CheckDestructor gets called on dllimported classes if the vtable ↵Hans Wennborg2016-04-132-7/+25
| | | | | | is used (PR27319) llvm-svn: 266242
* [DebugInfo] Optimize memory layout of DISubprogram.Davide Italiano2016-04-132-10/+24
| | | | | | | | | | | | | | | A DISubprogram on x86_64 was 48 bytes. During an LTO build we end up allocating *a lot* of these (see Duncan's numbers on llvm-dev and/or my numbers in the review link). This change reduces the size to 40 bytes, with a nice effect on peak memory usage when LTO'ing clang. There are more classes in the hierarchy which can be compacted so more patches will come. DISubprogram was the biggest offender in my profiling, anyway. Differential Revision: http://reviews.llvm.org/D18918 llvm-svn: 266241
* [PGO] Fix the buildbots for r266229. Betul Buyukkurt2016-04-131-2/+11
| | | | llvm-svn: 266240
* Lit C++11 Compatibility Patch #7Charles Li2016-04-1313-97/+527
| | | | | | | 13 tests have been updated for C++11 compatibility. Differential Revision: http://reviews.llvm.org/D19068 llvm-svn: 266239
* AsmParser: record "# line file" context to calculate location for diagTim Northover2016-04-133-32/+47
| | | | | | | | | | | Since we can't emit diagnostics for missing "jmp 1f" labels until the end of the file, we need to be able to restore the context used to calculate file/line. This is basically the "# line file" directive that's being used at the time the expression is seen. rdar://25706972 llvm-svn: 266238
* Test case for r265852.Easwaran Raman2016-04-131-0/+19
| | | | llvm-svn: 266237
* LibDriver: Silently do nothing when provided no inputs.Peter Collingbourne2016-04-132-2/+4
| | | | | | | | | This behavior is strange, but it matches lib.exe. Based on a patch by Nico Weber. Fixes PR27335. llvm-svn: 266236
* [CrashReproducer] Add test to run the reproducer script + modulesBruno Cardoso Lopes2016-04-131-0/+57
| | | | | | | Now that we have basic support in place, make sure the reproducer script works with modules for a simple testcase. llvm-svn: 266235
* [CrashReproducer] Setup 'use-external-names' in YAML files.Bruno Cardoso Lopes2016-04-136-7/+27
| | | | | | | | | | | | | | Hide the real paths when rebuilding from VFS by setting up the crash reproducer to use 'use-external-names' = false. This way we avoid module redifinition errors and consistently use the same paths against all modules. With this change on Darwin we are able to simulate a crash for a simple application using "Foundation/Foundation.h" (which relies on a bunch of different frameworks and headers) and successfully rebuild all the modules by relying solely at the VFS overlay. llvm-svn: 266234
* [VFS] Move default values to in-class member initialization. NFCBruno Cardoso Lopes2016-04-131-3/+3
| | | | llvm-svn: 266233
* Fix warning about unused variable.Rafael Espindola2016-04-131-3/+2
| | | | llvm-svn: 266232
* git-clang-format. NFC.Rafael Espindola2016-04-132-2/+2
| | | | llvm-svn: 266231
* Don't set MustBeInDynSym for hidden symbols.Rafael Espindola2016-04-132-2/+42
| | | | llvm-svn: 266230
* [PGO] Remove redundant VP instrumentationBetul Buyukkurt2016-04-132-0/+35
| | | | | | | | LLVM optimization passes may reduce a profiled target expression to a constant. Removing runtime calls at such instrumentation points would help speedup the runtime of the instrumented program. llvm-svn: 266229
* [PowerPC] Basic support for P9 byte comparison and count trailing zero insnsNemanja Ivanovic2016-04-137-8/+111
| | | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D17850 This patch implements the following instructions: cmprb, cmpeqb, cnttzw, cnttzw., cnttzd, cnttzd. llvm-svn: 266228
* ELF: Implement --dynamic-listAdhemerval Zanella2016-04-1311-7/+272
| | | | | | | | | | | | | | | | | | | | | This patch implements the --dynamic-list option, which adds a list of global symbol that either should not be bounded by default definition when creating shared libraries, or add in dynamic symbol table in the case of creating executables. The patch modifies the ScriptParserBase class to use a list of Token instead of StringRef, which contains information if the token is a quoted or unquoted strings. It is used to use a faster search for exact match symbol name. The input file follow a similar format of linker script with some simplifications (it does not have scope or node names). It leads to a simplified parser define in DynamicList.{cpp,h}. Different from ld/gold neither glob pattern nor mangled names (extern 'C++') are currently supported. llvm-svn: 266227
* Remove redundant null-check; NFCHubert Tong2016-04-131-1/+1
| | | | llvm-svn: 266226
* llvm-dwp: Add assert textDavid Blaikie2016-04-131-1/+3
| | | | | | Post-commit feedback from Eric Christopher on r265452. llvm-svn: 266225
* libclang: Use early-return to reduce indentation.David Blaikie2016-04-131-104/+96
| | | | | | | & since I'll get blamed for all the lines anyway, remove some else-after-return and otherwise tidy things up. llvm-svn: 266224
* [AArch64] Disable LDP/STP for quadsEvandro Menezes2016-04-133-0/+93
| | | | | | | | | Disable LDP/STP for quads on Exynos M1 as they are not as efficient as pairs of regular LDR/STR. Patch by Abderrazek Zaafrani <a.zaafrani@samsung.com>. llvm-svn: 266223
* Simplify memory management of CXEvalResultKind/ExprEvalResult using ↵David Blaikie2016-04-131-39/+28
| | | | | | | | | | | unique_ptr and a dtor This doesn't seem to need to be a C type, C only handles a void*, so use new/delete as usual to simplify allocation and cleanup. Follow-up to r265994 llvm-svn: 266222
* Revert "[IR/Verifier] Each DISubprogram with isDefinition: true must belong ↵Davide Italiano2016-04-132-41/+0
| | | | | | | | | to a CU." This reverts commit r266102. The O(N^2) verifier check causes timeouts in LTO test suite. llvm-svn: 266221
* [ELF] - Change -t implementation to print which archive members are used.George Rimar2016-04-135-19/+47
| | | | | | | | | | | | | | | | | | | Previously each archive file was reported no matter were it's member used or not, like: lib/libLLVMSupport.a Now lld prints line for each used internal file, like: lib/libLLVMSupport.a(lib/Support/CMakeFiles/LLVMSupport.dir/StringSaver.cpp.o) lib/libLLVMSupport.a(lib/Support/CMakeFiles/LLVMSupport.dir/Host.cpp.o) lib/libLLVMSupport.a(lib/Support/CMakeFiles/LLVMSupport.dir/ConvertUTF.c.o) That should be consistent with what gold do. This fixes PR27243. Differential revision: http://reviews.llvm.org/D19011 llvm-svn: 266220
* [analyzer] Nullability: Suppress diagnostic on bind with cast.Devin Coughlin2016-04-132-9/+70
| | | | | | | | | | | | | | Update the nullability checker to allow an explicit cast to nonnull to suppress a warning on an assignment of nil to a nonnull: id _Nonnull x = (id _Nonnull)nil; // no-warning This suppression as already possible for diagnostics on returns and function/method arguments. rdar://problem/25381178 llvm-svn: 266219
* [IR/DebugInfoMetadata] Simplify array length calculation by using ↵David Blaikie2016-04-131-4/+3
| | | | | | array_lengthof instead of ArrayRef::size llvm-svn: 266218
* Cleanup Store Merging in UseAA caseNirav Dave2016-04-132-30/+108
| | | | | | | | | | | | | | This patch fixes a bug (PR26827) when using anti-aliasing in store merging. This sets the chain users of the component stores to point to the new store instead of the component stores chain parent. Reviewers: jyknight Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18909 llvm-svn: 266217
* Sanity check `opt` options compatibility: can't have module-summary or ↵Mehdi Amini2016-04-131-2/+6
| | | | | | | module-hash when emitting textual IR From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266216
* Revert "Make aliases explicit in the summary"Mehdi Amini2016-04-1311-270/+43
| | | | | | | | | Inadvertently commited... This reverts commit e618ec93786d99df2ddf280ad2d5e02f5516cecf. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266215
* Make aliases explicit in the summaryMehdi Amini2016-04-1311-43/+270
| | | | | | | | | | | | | | | | Summary: To be able to work accurately on the reference graph when taking decision about internalizing, promoting, renaming, etc. We need to have the alias information explicit. Reviewers: tejohnson Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18836 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266214
* [OrderFiles] Don't allow lit to run dtrace multithreadedChris Bieneman2016-04-131-0/+1
| | | | | | Dtrace is implemented to try and minimize performance impact on the process being traced. This results in dtrace dropping samples if it is taking too many CPU resources. Multi-threading dtrace increases the sample drop rate dramatically. llvm-svn: 266213
* AArch64: allow 64-bit access to sysregs.Tim Northover2016-04-132-3/+3
| | | | | | | | Although all the registers are actually 32-bits, I think we have to assume the high 32-bits could be RES0 (the ARM ARM is unclear). If so, reading as a 32-bit register can require extra zero extension operations. llvm-svn: 266212
* ARM: make Darwin's "-arch armv7em" default to hard-float.Tim Northover2016-04-132-8/+14
| | | | | | | | | | We've already paid the price for separate "armv7m" and "armv7em" slices (support in other tools), it's silly to make them identical other than the default CPU. rdar://23055688 llvm-svn: 266211
* Revert inadvertently modified comment in r266131Mehdi Amini2016-04-131-1/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266210
* Qualify calls to addressof to avoid getting ADL. Fixes PR#27254.Marshall Clow2016-04-132-12/+12
| | | | llvm-svn: 266209
* ELF: Use hidden visibility for all DefinedSynthetic symbols.Peter Collingbourne2016-04-1313-50/+46
| | | | | | | | | | | | | This simplifies the code by allowing us to remove the visibility argument to functions that create synthetic symbols. The only functional change is that the visibility of the MIPS "_gp" symbol is now hidden. Because this symbol is defined in every executable or DSO, it would be difficult to observe a visibility change here. Differential Revision: http://reviews.llvm.org/D19033 llvm-svn: 266208
* Test dynamic relocations pointing to __stop_ symbols.Rafael Espindola2016-04-131-1/+15
| | | | llvm-svn: 266207
* AArch64: don't create instructions that write to xzr/wzr twice.Tim Northover2016-04-132-3/+11
| | | | | | | | These are unpredictable even on AArch64. Patch by Yichao Yu. llvm-svn: 266206
* [AMDGPU][llvm-mc] Support of Trap Handler registers (TTMP0..11 and ↵Artem Tamazov2016-04-137-53/+272
| | | | | | | | | | | | | | | TBA/TMA)git status Tests added along with implemented feature. Note that there is a small leftover of unecessary MI sheduling issue (more info in the review). CodeGen/AMDGPU/salu-to-valu.ll updated to fix the false regression. TODO: Support for TTMP quads, comma-separated syntax in "[]" and more. Differential Revision: http://reviews.llvm.org/D17825 llvm-svn: 266205
* [mips] Fix emitAtomicCmpSwapPartword to handle 64 bit pointers correctlyZoran Jovanovic2016-04-132-6/+28
| | | | | | Differential Revision: http://reviews.llvm.org/D18995 llvm-svn: 266204
* [mips] Sign-extend i32 values truncated from previously zero-extended i32 ↵Vasileios Kalintiris2016-04-135-5/+115
| | | | | | | | | | | | | | | | | | | | values. Summary: This is a special case for MIPS64 because the architecture requires properly 32-bit sign-extended values in the register containers. Additionaly, we merge consecutive trunc + AssertZExt nodes in order to avoid unnecessary sign-extensions when the extension comes from a type smaller than i32. Reviewers: dsanders Subscribers: dsanders, sdardis, llvm-commits Differential Revision: http://reviews.llvm.org/D18893 llvm-svn: 266203
* [Clang][AVX512][Builtin] Adding support to intrinsics of ↵Michael Zuckerman2016-04-135-0/+826
| | | | | | | | pmovs{d|q}{b|w|d}{128|256|512} instruction set Differential Revision: http://reviews.llvm.org/D19023 llvm-svn: 266202
* Reverting r266199; it causes build bot failures.Aaron Ballman2016-04-136-365/+278
| | | | | | | http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/3255 http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/3517 llvm-svn: 266201
* Simplify strlen to a subtraction for certain cases.David L Kreitzer2016-04-134-20/+82
| | | | | | | | Patch by Li Huang (li1.huang@intel.com) Differential Revision: http://reviews.llvm.org/D18230 llvm-svn: 266200
* Add functions declared in ctype.h to builtin function database. All ↵Aaron Ballman2016-04-136-278/+365
| | | | | | | | functions are annotated with nothrow and pure attribute, which enables better optimization. Patch by Taewook Oh. llvm-svn: 266199
* [OPENMP 4.0] Fixed DSA analysis for taskloop directives.Alexey Bataev2016-04-135-36/+39
| | | | | | | Patch make clang to perform analysis for task-based directives also for taskloop-based directives. llvm-svn: 266198
* Match types in for loop to fix signedness comparison warningEd Maste2016-04-131-2/+2
| | | | llvm-svn: 266197
* Remove obsolete commentsPavel Labath2016-04-131-2/+0
| | | | llvm-svn: 266196
OpenPOWER on IntegriCloud