summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Perform Objective-C lifetime adjustments before comparing deduced lambda ↵Douglas Gregor2015-10-015-11/+46
| | | | | | | | | | result types. Objective-C ARC lifetime qualifiers are dropped when canonicalizing function types. Perform the same adjustment before comparing the deduced result types of lambdas. Fixes rdar://problem/22344904. llvm-svn: 249065
* [ELF2] Implement --no-undefined flag.George Rimar2015-10-015-1/+13
| | | | llvm-svn: 249064
* [analyzer] Add TK_EntireMemSpace invalidation trait.Devin Coughlin2015-10-012-23/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit supports Sean Eveson's work on loop widening. It is NFC for now. It adds a new TK_EntireMemSpace invalidation trait that, when applied to a MemSpaceRegion, indicates that the entire memory space should be invalidated. Clients can add this trait before invalidating. For example: RegionAndSymbolInvalidationTraits ITraits; ITraits.setTrait(MRMgr.getStackLocalsRegion(STC), RegionAndSymbolInvalidationTraits::TK_EntireMemSpace); This commit updates the existing logic invalidating global memspace regions for calls to additionally handle arbitrary memspaces. When generating initial clusters during cluster analysis we now add a cluster to the worklist if the memspace for its base is marked with TK_EntireMemSpace. This also moves the logic for invalidating globals from ClusterAnalysis to invalidateRegionsWorker so that it is not shared with removeDeadBindingsWorker. There are no explicit tests with this patch -- but when applied to Sean's patch for loop widening in http://reviews.llvm.org/D12358 and after updating his code to set the trait, the failing tests in that patch now pass. Differential Revision: http://reviews.llvm.org/D12993 llvm-svn: 249063
* Make the test a bit stronger.Rafael Espindola2015-10-011-1/+2
| | | | | | This shows that it is really DT_SONAME that is used to detect dups. llvm-svn: 249062
* Don't include shared libraries multiple times.Rafael Espindola2015-10-015-8/+22
| | | | llvm-svn: 249061
* Simplify Sema::DeduceFunctionTypeFromReturnExpr and eliminae a redundant check.Douglas Gregor2015-10-011-7/+2
| | | | | | NFC llvm-svn: 249060
* ELF2: Use -soname to create a test .so file. Remove the .so binary from ↵Rui Ueyama2015-10-012-1/+2
| | | | | | repository. llvm-svn: 249059
* ELF2: Add -soname option.Rui Ueyama2015-10-015-6/+31
| | | | llvm-svn: 249058
* [CMake] [iOS] [builtins] Adding all builtins that generate empty object ↵Chris Bieneman2015-10-012-0/+164
| | | | | | | | files for iOS to the exclude lists. This should help make the compiler-rt build less noisy. llvm-svn: 249057
* [CMake] Only build the simulator builtins if you're also building the device ↵Chris Bieneman2015-10-011-1/+1
| | | | | | | | builtins. This matters because simulator builtins get lipo'd together with the device builtins into a single static archive per-platform. llvm-svn: 249056
* Fix Android build after r249047.Oleksiy Vyalov2015-10-011-1/+1
| | | | llvm-svn: 249055
* [CMake] Only add an OS to the supported OS lists if there are supported ↵Chris Bieneman2015-10-011-6/+13
| | | | | | architectures for that OS. llvm-svn: 249054
* Teach -Wtautological-overlap-compare about enumsGeorge Burgess IV2015-10-012-38/+123
| | | | | | | | | Prior to this patch, -Wtautological-overlap-compare would only warn us if there was a sketchy logical comparison between variables and IntegerLiterals. This patch makes -Wtautological-overlap-compare aware of EnumConstantDecls, so it can apply the same logic to them. llvm-svn: 249053
* [WinEH] Make FuncletLayout more robust against catchretDavid Majnemer2015-10-0113-50/+249
| | | | | | | | | Catchret transfers control from a catch funclet to an earlier funclet. However, it is not completely clear which funclet the catchret target is part of. Make this clear by stapling the catchret target's funclet membership onto the CATCHRET SDAG node. llvm-svn: 249052
* [asan] Tweak gen_dynamic_list.py to work with both Py2 and Py3.Evgeniy Stepanov2015-10-011-1/+1
| | | | llvm-svn: 249051
* [CMake] Don't include the lld test directory if LLVM_INCLUDE_TESTS is OffChris Bieneman2015-10-011-2/+1
| | | | | | This matches the behavior of LLVM and Clang. llvm-svn: 249050
* [AArch64] Deprecate a command-line option used for testing.Chad Rosier2015-10-011-12/+4
| | | | | | | Support for pairing unscaled loads and stores has been enabled since the original ARM64 port. This feature is no longer experimental, AFAICT. llvm-svn: 249049
* [CMake] Don't include the test directories if CLANG_INCLUDE_TESTS is OffChris Bieneman2015-10-011-1/+1
| | | | | | This matches Clang's behavior. llvm-svn: 249048
* Add a 'type lookup' command. This command is meant to look up type ↵Enrico Granata2015-10-015-1/+373
| | | | | | | | | | information by name in a language-specific way. Currently, it only supports Objective-C - C++ types can be looked up through debug info via 'image lookup -t', whereas ObjC types via this command are looked up by runtime introspection This behavior is in line with type lookup's behavior in Xcode 7, but I am definitely open to feedback as to what makes the most sense here llvm-svn: 249047
* [SystemZ] Add some generic (floating point support) load instructions.Jonas Paulsson2015-10-0112-31/+132
| | | | | | | | | | | | | | | | | | | | | | Add generic instructions for load complement, load negative and load positive for fp32 and fp64, and let isel prefer them. They do not clobber CC, and so give scheduler more freedom. SystemZElimCompare pass will convert them when it can to the CC-setting variants. Regression tests updated to expect the new opcodes in places where the old ones where used. New test case SystemZ/fp-cmp-05.ll checks that SystemZCompareElim.cpp can handle the new opcodes. README.txt updated (bullet removed). Note that fp128 is not yet handled, because it is relatively rare, and is a bit trickier, because of the fact that l.dfr would operate on the sign bit of one of the subregisters of a fp128, but we would not want to copy the other sub-reg in case src and dst regs are not the same. Reviewed by Ulrich Weigand. llvm-svn: 249046
* [ELF2] Add --[no-]whole-archive command line switchesIgor Kudrin2015-10-018-6/+80
| | | | | | | | | | | | | | | | | Summary: If --whole-archive is used, all symbols from the following archives are added to the output. --no-whole-archive restores default behavior. These switches can be used multiple times. NB. We have to keep an ArchiveFile instance within SymbolTable even if --whole-archive mode is active since it can be a thin archive which contains just names of external files. In that case actual memory buffers for the archive members will be stored within the File member of ArchiveFile class. Reviewers: rafael, ruiu Subscribers: grimar, llvm-commits Projects: #lld Differential Revision: http://reviews.llvm.org/D13286 llvm-svn: 249045
* [asan] Tune down SizeClassAllocator tests.Evgeniy Stepanov2015-10-011-1/+1
| | | | | | | This should make the Android/x86 bot (running on a Nexus Player) less flaky. llvm-svn: 249044
* Fix printing of 64 bit values and make test more strict.Rafael Espindola2015-10-012-17/+30
| | | | llvm-svn: 249043
* AMDGPU: Add MEM_RAT STORE_TYPED.Tom Stellard2015-10-015-0/+55
| | | | | | | | | | | | v2: Add test (Matt). Fix capitalization of isEOP (Matt). Move pattern to class parameter (Matt). Make the instruction available to Cayman (Matt). Change name from MEM_RAT WRITE_TYPED to MEM_RAT STORE_TYPED. Patch by: Zoltan Gilian llvm-svn: 249042
* AMDGPU: Factor out EOP query.Tom Stellard2015-10-011-4/+6
| | | | | | | | v2: Fix brace placement and capitalization (Matt). Patch by: Zoltan Gilian llvm-svn: 249041
* Use %HOME%/.lldb/module_cache as a default module cache directory.Oleksiy Vyalov2015-10-011-8/+15
| | | | | | http://reviews.llvm.org/D13323 llvm-svn: 249040
* Removed a mutex guard that I accidentally pasted in from other code.Sean Callanan2015-10-011-2/+0
| | | | | | It was causing deadlocks when stepping out. llvm-svn: 249039
* ELF2: Tidy up Options.td again.Rui Ueyama2015-10-011-6/+4
| | | | llvm-svn: 249038
* Remove trailing whitespaces.Rui Ueyama2015-10-013-12/+12
| | | | llvm-svn: 249037
* [ELF2] Implement --allow-shlib-undefined as default behavior.George Rimar2015-10-014-0/+37
| | | | | | | We ignore --{no,}allow-shlib-undefined options and always allow undefined symbols if we are building a DSO. llvm-svn: 249036
* Reformat.NAKAMURA Takumi2015-10-011-1/+2
| | | | llvm-svn: 249033
* Revert r248959, "[WinEH] Emit int3 after noreturn calls on Win64"NAKAMURA Takumi2015-10-018-134/+24
| | | | | | It broke; LLVM :: CodeGen__Generic__2009-11-16-BadKillsCrash.ll llvm-svn: 249032
* Module debugging: Also emit Objective-C interfaces forward declarationsAdrian Prantl2015-10-013-3/+11
| | | | | | in their module scope when building a clang module. llvm-svn: 249031
* Allow a ToolChain to compute the path of a compiler-rt's component.Vasileios Kalintiris2015-10-014-57/+48
| | | | | | | | | | | | | | | | Summary: This patch moves getCompilerRT() from the clang::driver::tools namespace to the ToolChain class. This is needed for multilib toolchains that need to place their libraries in Clang's resource directory with a layout that is different from the default one. Reviewers: atanasyan, rsmith Subscribers: tberghammer, danalbert, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D13339 llvm-svn: 249030
* [ELF2] Add -Bstatic and -Bdynamic command line switchesIgor Kudrin2015-10-014-11/+64
| | | | | | | | | | | | | | | | | Summary: These switches affect library searching for '-l' which follow them. Synonym forms are also supported: * -dy and -call_shared for -Bdynamic switch * -dn, -non_shared and -static for -Bstatic switch Reviewers: rafael, ruiu Subscribers: emaste, llvm-commits Projects: #lld Differential Revision: http://reviews.llvm.org/D13238 llvm-svn: 249029
* Made Target hold a map of languages to TypeSystems, and added some accessors.Sean Callanan2015-10-0110-30/+139
| | | | | | | | Also added some target-level search functions so that persistent variables and symbols can be searched for without hand-iterating across the map of TypeSystems. llvm-svn: 249027
* Copy DT_SONAME to DT_NEEDED.Rafael Espindola2015-10-015-6/+43
| | | | | | | | | If a shared library has a DT_SONAME entry, that is what should be included in the DT_NEEDED of a program using it. We don't implement -soname yet, so check in a .so for now. llvm-svn: 249025
* ELF2: Linker scripts can refer other linker scripts. Test that.Rui Ueyama2015-10-011-0/+5
| | | | | | This did not work before r249023. llvm-svn: 249024
* ELF2: Define Driver::addFile() as a one-stop place to open a file.Rui Ueyama2015-10-015-60/+44
| | | | | | | | | | | | | | Opening a file and dispatching to readLinkerScript() or createFile() is a common operation. We want to use that at least from Driver and from LinkerScript. In COFF, we had the same problem. This patch resolves the problem in the same way as we did for COFF. Now, if you have a path that you want to open, just call Driver->addFile(StringRef). That function opens the file and handles that as if that were given by command line. This function is the only place we call identify_magic(). llvm-svn: 249023
* Use more strict types. NFC.Rafael Espindola2015-10-011-4/+8
| | | | | | On 32 bit ELF these are 32 bit values. llvm-svn: 249022
* Romove accidentially added statement in r249020Sagar Thakur2015-10-011-2/+0
| | | | llvm-svn: 249021
* [LLDB][MIPS] Fix gp register value for o32 applications on 64-bit targetSagar Thakur2015-10-012-8/+3
| | | | | | | GP registers for o32 applications were always giving zero value because SetType() on the RegisterValue was causing the accessor functions to pickup the value from m_scalar of RegisterValue which is zero. In this patch byte size and byte order of register value is set at the time of setting the value of the register. llvm-svn: 249020
* [VFS] Remove unused setters. NFC.Benjamin Kramer2015-10-011-2/+0
| | | | llvm-svn: 249019
* [InstCombine] Remove trivially empty lifetime start/end ranges.Arnaud A. de Grandmaison2015-10-012-0/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Some passes may open up opportunities for optimizations, leaving empty lifetime start/end ranges. For example, with the following code: void foo(char *, char *); void bar(int Size, bool flag) { for (int i = 0; i < Size; ++i) { char text[1]; char buff[1]; if (flag) foo(text, buff); // BBFoo } } the loop unswitch pass will create 2 versions of the loop, one with flag==true, and the other one with flag==false, but always leaving the BBFoo basic block, with lifetime ranges covering the scope of the for loop. Simplify CFG will then remove BBFoo in the case where flag==false, but will leave the lifetime markers. This patch teaches InstCombine to remove trivially empty lifetime marker ranges, that is ranges ending right after they were started (ignoring debug info or other lifetime markers in the range). This fixes PR24598: excessive compile time after r234581. Reviewers: reames, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13305 llvm-svn: 249018
* Update clang-tidy documentation.Angel Garcia Gomez2015-10-013-0/+49
| | | | | | | | | | | | | | Summary: Improve modernize-use-auto documentation (https://llvm.org/bugs/show_bug.cgi?id=24962). Add documentation for modernize-make-unique. Reviewers: klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13346 llvm-svn: 249017
* ELF2: Rename undefError -> reportUndefined.Rui Ueyama2015-10-011-2/+2
| | | | | | | The new name starts with a verb, and it does not imply that it errors out and exit (it acutally can just emit a warning depending on settings.) llvm-svn: 249016
* [SystemZ] Add assembly instructions for obtaining clock values as well as ↵Ulrich Weigand2015-10-013-1/+149
| | | | | | | | | | | CPU features Provide assembler support for STCK, STCKF, STCKE, and STFLE. Author: joncmu Differential Revision: http://reviews.llvm.org/D13299 llvm-svn: 249015
* Fix Android-SDK detection on API 10 deviceTamas Berghammer2015-10-011-11/+7
| | | | | | | | Run the getprop command with AdbClient::Shell instead of Platform::RunShellCommand because getting the output from getprop with Platform::RunShellCommand have some (currently unknown) issues. llvm-svn: 249014
* Fix breakpoint opcode calculation on LinuxTamas Berghammer2015-10-011-2/+9
| | | | | | | | | | Change the way we detect if we have to place a thumb breakpoint instead of an arm breakpoint in the case when no symbol table or mapping symbols are available. Detect it based on the LSB of the FileAddress instead of the LSB of the LoadAddress because the LSB of the LoadAddress is already masked out. llvm-svn: 249013
* Restrict the scope of a hack in DYLDRendezvousTamas Berghammer2015-10-013-6/+36
| | | | | | | | | | The hack is there to work around an incorrect load address reported by the android linker on API 21 and 22 devices. This CL restricts the hack to those android API levels. Differential revision: http://reviews.llvm.org/D13288 llvm-svn: 249012
OpenPOWER on IntegriCloud