summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [LibFuzzer] test_single_input option to run a single test case.Ivan Krasin2015-10-016-1/+14
| | | | | | | | | | -test_single_input flag specifies a file name with test data. Review URL: http://reviews.llvm.org/D13359 Patch by Mike Aizatsky! llvm-svn: 249096
* Eliminated redundant "constructors" for ClangExpressionVariable. ↵Sean Callanan2015-10-019-90/+88
| | | | | | | | | | | | | The ClangExpressionVariable::CreateVariableInList functions looked cute, but caused more confusion than they solved. I removed them, and instead made sure that there are adequate facilities for easily adding newly-constructed ExpressionVariables to lists. I also made some of the constructors that are common be generic, so that it's possible to construct expression variables from generic places (like the ABI and ValueObject) without having to know the specifics about the class. llvm-svn: 249095
* [elf2] Ignore --{start,end}-group.Michael J. Spencer2015-10-011-0/+2
| | | | llvm-svn: 249093
* [SimplifyLibCalls] Fix instruction misplacement in string/memory libcall ↵Bruno Cardoso Lopes2015-10-012-2/+32
| | | | | | | | | | | | | | | | | | optimization When trying to optimize fortified library functions use the right location to insert new instructions in order to preserve correct def-use order. This fixes an issue where a misplaced instruction definition would happen to be *after* one of its use after a RAUW, forming invalid IR. This behavior was introduced by r227250. Differential Revision: http://reviews.llvm.org/D13301 rdar://problem/22802369 llvm-svn: 249092
* AMDGPU: Fix unused variable warning in release buildMatt Arsenault2015-10-011-2/+2
| | | | llvm-svn: 249091
* Don't try to get a CXXRecordDecl from a non-class TemplateSpecializationType.Kaelyn Takata2015-10-012-0/+12
| | | | | | | | With -fms-extensions it is possible to have a non-class record that is a template specialization cause an assertion failure via the call to Type::getAsCXXRecordDecl. Fixes PR 24246. llvm-svn: 249090
* Ignore --no-add-needed.Rafael Espindola2015-10-011-0/+1
| | | | llvm-svn: 249089
* [Hexagon] XFAILing test while diagnosing backend error.Colin LeMahieu2015-10-011-0/+1
| | | | llvm-svn: 249088
* AMDGPU: Move SIFixSGPRLiveRanges to be a regalloc passMatt Arsenault2015-10-012-33/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace LiveInterval usage with LiveVariables. LiveIntervals computes far more information than is needed for this pass which just needs to find if an SGPR is live out of the defining block. LiveIntervals are not usually available that early, requiring computing them twice which is very expensive. The extra run of LiveIntervals/LiveVariables/SlotIndexes was costing in total about 5% of compile time. Continuing to use LiveIntervals is problematic. It seems there is an option (early-live-intervals) to run the analysis about where it should go to avoid recomputing LiveVariables, but it seems to be completely broken with subreg liveness enabled. There are also problems from trying to recompute LiveIntervals since this seems to undo LiveVariables and clearing kill flags, causing TwoAddressInstructions to make bad decisions. Insert the pass right after live variables and preserve it. The tricky case to worry about might be phis since LiveVariables doesn't count a register as live out if in the successor block it is only used in a phi, but I don't think this is a concern right now because SIFixSGPRCopies replaces SGPR phis. llvm-svn: 249087
* Fix relocation used for GOT references in non-PIC mode. Fix relocationsJoerg Sonnenberger2015-10-012-39/+66
| | | | | | | | for "set" pseudo op in PIC mode. Differential Revision: http://reviews.llvm.org/D13173 llvm-svn: 249086
* Don't adjust field offsets when using external record layout.Zachary Turner2015-10-011-4/+11
| | | | | | | | | | | This was already being done when injecting the VBPtr, but not when injecting the VFPtr. This fixes a number of tests in LLDB's test suite. Reviewed by: David Majnemer Differential Revision: http://reviews.llvm.org/D13276 llvm-svn: 249085
* [CMake] [builtins] [macho_embedded] Separate out the 64-bit thumb builtins ↵Chris Bieneman2015-10-013-11/+12
| | | | | | | | so they don't get included on 'm' architectures. NFC. This should help make the compiler-rt build less noisy. llvm-svn: 249084
* [PATCH] D13360: [llvm-objdump] Teach -d about AArch64 mapping symbolsDavide Italiano2015-10-012-0/+79
| | | | | | | | | | AArch64 uses $d* and $x* to interleave between text and data. llvm-objdump didn't know about this so it ended up printing garbage. This patch is a first step towards a solution of the problem. Differential Revision: http://reviews.llvm.org/D13360 llvm-svn: 249083
* AMDGPU: Merge if and switchMatt Arsenault2015-10-011-14/+17
| | | | llvm-svn: 249082
* AMDGPU: Remove dead codeMatt Arsenault2015-10-011-7/+4
| | | | | | | There's no point in checking VReg_1 because all uses of it should already have been removed by SILowerI1Copies. llvm-svn: 249081
* Remove dead file.Rafael Espindola2015-10-011-24/+0
| | | | llvm-svn: 249080
* AMDGPU: Make SIInsertWaits about a factor of 4 fasterMatt Arsenault2015-10-012-23/+24
| | | | | | | | | | | | | | | | | | This was the slowest target custom pass and was spending 80% of the time in getMinimalPhysRegClass which was called for every register operand. Try to use the statically known register class when possible from the instruction's MCOperandInfo. There are a few pseudo instructions which are not well behaved with unknown register classes which still require the expensive physical register class search. There are a few other possibilities for making this even faster, such as not inspecting implicit operands. For now those are checked because it is technically possible to have a scalar load into exec or vcc which can be implicitly used. llvm-svn: 249079
* [WinEH] Emit __C_specific_handler tables for the new IRReid Kleckner2015-10-016-65/+439
| | | | | | | | | | | | We emit denormalized tables, where every range of invokes in the same state gets a complete list of EH action entries. This is significantly simpler than trying to infer the correct nested scoping structure from the MI. Fortunately, for SEH, the nesting structure is really just a size optimization. With this, some basic __try / __except examples work. llvm-svn: 249078
* Still define __init_array_(start|end) if there is no .init_array.Rafael Espindola2015-10-014-4/+36
| | | | | | | This matches the behavior of other linkers and seems necessary to link in some older systems. llvm-svn: 249077
* [CMake] [builtins] [macho_embedded] Don't pass -mfloat-abi=hard flag to x86 ↵Chris Bieneman2015-10-011-1/+5
| | | | | | because the compiler ignores it and complains. llvm-svn: 249076
* [Hexagon] XFAILing test while diagnosing backend error.Colin LeMahieu2015-10-011-0/+1
| | | | llvm-svn: 249075
* Simplify instantiation. NFC.Rafael Espindola2015-10-011-12/+8
| | | | llvm-svn: 249074
* AMDGPU/SI: Remove assert from AMDGPUOpenCLImageTypeLowering passTom Stellard2015-10-012-2/+30
| | | | | | | | | | | | | | | Summary: Instead of asserting when the kernel metadata is different than we expect, we should just skip lowering that function. This fixes assertion failures with OpenCL argument metadata from older LLVM releases. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D13356 llvm-svn: 249073
* [lldb-mi] Add support for StopAtEntry in MI via "-exec-run --start".Dawn Perchik2015-10-014-26/+70
| | | | | | | | | | | | | | | | | | This patch adds a --start option to the lldb-mi -exec-run command for getting process stopped at entry point after launch. It is equivelent to the -s option in the lldb command line interpreter: process launch -s and is therefore not supported on all hosts and/or targets. To check if the --start option is supported, see if the corresponding feature "exec-run-start-option" is in the list of options reported by the lldb-mi "-list-features" command. Patch from engineer.developer@gmail.com (Kirill Lapshin) Reviewed by: ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12977 llvm-svn: 249072
* [lld][elf2] Sort output sections.Michael J. Spencer2015-10-0123-274/+321
| | | | | | | | | | | | | | | Sort by: ALLOC ALLOC && NOBITS ALLOC & EXEC ALLOC & EXEC && NOBITS ALLOC & WRITE ALLOC & WRITE && NOBITS <nothing> (ignoring NOBITS) The dynamic section is finalized early because it adds strings to the dynamic string table, which comes before the dynamic table. llvm-svn: 249071
* [CMake] [builtins] [OS X] Adding all builtins that generate empty object ↵Chris Bieneman2015-10-013-0/+95
| | | | | | | | files for OS X to the exclude lists. This should help make the compiler-rt build less noisy. llvm-svn: 249070
* [WinEH] Stop BranchFolding from merging across funcletsDavid Majnemer2015-10-013-15/+58
| | | | | | | BranchFolding would merge two funclets together, this is not OK. Disable this and strengthen the assertion in FuncletLayout. llvm-svn: 249069
* [CMake] [builtins] [iOS Sim] Adding all builtins that generate empty object ↵Chris Bieneman2015-10-013-0/+95
| | | | | | | | files for the iOS simulator to the exclude lists. This should help make the compiler-rt build less noisy. llvm-svn: 249068
* Kill another reference to in-source buildsJonathan Roelofs2015-10-011-8/+5
| | | | llvm-svn: 249067
* Don't crash on files with no symbol table.Rafael Espindola2015-10-013-0/+6
| | | | | | Thanks to Roman Divacky for the test. llvm-svn: 249066
* 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
OpenPOWER on IntegriCloud