summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [SCEVExpander] Fix comments for functions. NFC.Sanjoy Das2015-04-141-60/+55
| | | | | | | | Bring function documentation for ScalarEvolutionExpander up to code by not repeating the function name in the comment documenting functionality. Reflow the edited comments where needed. llvm-svn: 234847
* [LoopUnrollRuntime] Avoid high-cost trip count computation.Sanjoy Das2015-04-148-14/+63
| | | | | | | | | | | | | | | | | Summary: Runtime unrolling of loops needs to emit an expression to compute the loop's runtime trip-count. Avoid runtime unrolling if this computation will be expensive. Depends on D8993. Reviewers: atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8994 llvm-svn: 234846
* [SCEV] Strengthen SCEVExpander::isHighCostExpansion.Sanjoy Das2015-04-142-6/+46
| | | | | | | | | | | | | | | | | | Summary: Teach `isHighCostExpansion` to consider divisions by power-of-two constants as cheap and add a test case. This change is needed for a new user of `isHighCostExpansion` that will be added in a subsequent change. Depends on D8995. Reviewers: atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8993 llvm-svn: 234845
* [SCEV] Refactor out isHighCostExpansion. NFCI.Sanjoy Das2015-04-143-56/+74
| | | | | | | | | | | | | | Summary: Move isHighCostExpansion from IndVarSimplify to SCEVExpander. This exposed function will be used in a subsequent change. Reviewers: bogner, atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8995 llvm-svn: 234844
* DebugInfo: Gut DINamespace and DITemplate*ParameterDuncan P. N. Exon Smith2015-04-144-73/+54
| | | | | | | Continue gutting `DIDescriptor` subclasses, turning them into as-bare-as-possible pointer wrappers. llvm-svn: 234843
* DebugInfo: Add MDLexicalBlockBase::getLine(), etc.Duncan P. N. Exon Smith2015-04-142-11/+26
| | | | | | | | | | | | | | Add a few functions from `DILexicalBlock` to `MDLexicalBlockBase`, leaving `DILexicalBlock` a simple wrapper. IMO, the new functions (`getLine()` and `getColumn()`) don't really belong in the base class, but to simplify transitioning old code it seems like the right incremental step. I've explicitly deleted them in `MDLexicalBlockFile`, and eventually the callers should be updated to downcast to `MDLexicalBlock` directly and the forwarding functions removed. llvm-svn: 234842
* Define make_dynamic_error_code(const char *).Rui Ueyama2015-04-1412-41/+43
| | | | | | | | | | | | The function took either StringRef or Twine. Since string literals are ambiguous when resolving the overloading, many code calls used this function with explicit type conversion. That led awkward code like make_dynamic_error_code(Twine("Error occurred")). This patch adds a function definition for string literals, so that you can directly call the function with literals. llvm-svn: 234841
* DebugInfo: Gut DIVariable and DIGlobalVariableDuncan P. N. Exon Smith2015-04-1414-111/+74
| | | | | | | | | | Gut all the non-pointer API from the variable wrappers, except an implicit conversion from `DIGlobalVariable` to `DIDescriptor`. Note that if you're updating out-of-tree code, `DIVariable` wraps `MDLocalVariable` (`MDVariable` is a common base class shared with `MDGlobalVariable`). llvm-svn: 234840
* [RuntimeDyldELF] Improve GOT supportKeno Fischer2015-04-148-114/+123
| | | | | | | | | | | | | | | | | | Summary: This is the first in a series of patches to eventually add support for TLS relocations to RuntimeDyld. This patch resolves an issue in the current GOT handling, where GOT entries would be reused between object files, which leads to the same situation that necessitates the GOT in the first place, i.e. that the 32-bit offset can not cover all of the address space. Thus this patch makes the GOT object-file-local. Unfortunately, this still isn't quite enough, because the MemoryManager does not yet guarantee that sections are allocated sufficiently close to each other, even if they belong to the same object file. To address this concern, this patch also adds a small API abstraction on top of the GOT allocation mechanism that will allow (temporarily, until the MemoryManager is improved) using the stub mechanism instead of allocating a different section. The actual switch from separate section to stub mechanism will be part of a follow-on commit, so that it can be easily reverted independently at the appropriate time. Test Plan: Includes a test case where the GOT of two object files is artificially forced to be apart by several GB. Reviewers: lhames Reviewed By: lhames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8813 llvm-svn: 234839
* DebugInfo: Move DIVariable::printExtendedName() to its only callerDuncan P. N. Exon Smith2015-04-143-38/+37
| | | | | | Move the local function `printDebugLoc()` along with it. llvm-svn: 234838
* DebugInfo: Inline DIVariable::isBlockByrefVariable() into its callersDuncan P. N. Exon Smith2015-04-142-7/+4
| | | | | | | I don't think this API is helping much. Change the callers to call `MDType::isBlockByrefStruct()` directly. llvm-svn: 234837
* DebugInfo: Gut DIObjCProperty and DIImportedEntityDuncan P. N. Exon Smith2015-04-147-57/+39
| | | | | | | Gut a couple more classes in the DIDescriptor hierarchy. Leave behind an implicit conversion to `DIDescriptor`, the old base class. llvm-svn: 234836
* DebugInfo: Gut DILocationDuncan P. N. Exon Smith2015-04-146-37/+23
| | | | | | | | This is along the same lines as r234832, but for `DILocation`. Clean out all accessors from `DILocation`. Any callers should be using `MDLocation` directly (e.g., via `operator->()`). llvm-svn: 234835
* ELF: Remove almost empty class.Rui Ueyama2015-04-144-32/+4
| | | | llvm-svn: 234834
* [LoopAccesses] Properly print whether memchecks are neededAdam Nemet2015-04-142-3/+46
| | | | | | | | | | | Fix oversight in -analyze output. PtrRtCheck contains the pointers that need to be checked against each other and not whether memchecks are necessary. For instance in the testcase PtrRtCheck has four elements but all no-alias so no checking is necessary. llvm-svn: 234833
* DebugInfo: Gut DIExpressionDuncan P. N. Exon Smith2015-04-148-50/+40
| | | | | | | | | | | | | | | | Completely gut `DIExpression`, turning it into a simple wrapper around `MDExpression *`. There are two bits of magic left: - It's constructed from `const MDExpression*` but convertible to `MDExpression*`. - It's default-constructed to `nullptr`. Otherwise, it should behave quite like a raw pointer. Once I've done the same to the rest of the `DIDescriptor` subclasses, I'll come back to delete them entirely (and update call sites as necessary to deal with the missing magic). llvm-svn: 234832
* Remove unused variable.Rui Ueyama2015-04-142-3/+1
| | | | llvm-svn: 234831
* ELF: Use less templates for ELF types.Rui Ueyama2015-04-149-83/+61
| | | | | | | These classes are templated but actually instantiated for only one ELF type. llvm-svn: 234830
* DebugInfo: Move an assertion into MDCompositeTypeBaseDuncan P. N. Exon Smith2015-04-142-4/+7
| | | | | | In the name of gutting the `DIDescriptor` hierarchy. llvm-svn: 234829
* Remove gcc xfail for TestTargetWatchAddress.Chaoren Lin2015-04-141-1/+0
| | | | llvm-svn: 234828
* [RewriteStatepointsForGC] Delete dead code [NFC]Philip Reames2015-04-141-26/+4
| | | | | | | | | Before we had real liveness, we needed to track every value that base pointer insertion code created because these now might be live. We now just rerun the data flow liveness algorithm (which is actually faster!) and no longer need the associated code. llvm-svn: 234827
* Remove gcc xfail for TestWatchpointMultipleThreads.Chaoren Lin2015-04-141-2/+0
| | | | llvm-svn: 234826
* DebugInfo: Move DILocation::computeNewDiscriminators()Duncan P. N. Exon Smith2015-04-145-9/+33
| | | | | | | | | As documented in PR23200 (and the FIXMEs I've added to the code here), this logic is fairly broken: it modifies the `LLVMContext` in a way that affects other modules and cannot be serialized to assembly/bitcode. For now, move it over to `MDLocation::computeNewDiscriminators()` anyway. llvm-svn: 234825
* AddDiscriminators: Create new MDLocation directlyDuncan P. N. Exon Smith2015-04-143-13/+3
| | | | | | | | | | I don't see a reason to add the `copyWithNewScope()` API over to `MDLocation` -- it seems to be a holdover from when creating locations required knowing details of operand layout -- so change `AddDiscriminators` to call `MDLocation::get()` directly. Should be no functionality change here. llvm-svn: 234824
* ELF: Define ELF{32,64}{LE,BE} types and use them everywhere.Rui Ueyama2015-04-1431-163/+111
| | | | llvm-svn: 234823
* [Orc] Revert 234815. Still haven't quite got this test figured out apparently.Lang Hames2015-04-141-27/+14
| | | | llvm-svn: 234822
* [TestPluginCommands] Add skipIfGcc at the right place.Siva Chandra2015-04-141-1/+1
| | | | | | | | | | | | | | | | | | | Summary: The decorator @expectedFailureGcc was at the wrong place skipping this test all together. This patch removes it and adds skipIfGcc at the right place. Test Plan: dotest.py -C <gcc|clang> -p TestPluginCommands Reviewers: chying, chaoren Reviewed By: chaoren Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9010 llvm-svn: 234821
* ELF: Remove useless templates that takes always the same ELF type.Rui Ueyama2015-04-146-48/+39
| | | | llvm-svn: 234820
* DebugInfo: Move DILocation::getDiscriminator() to MDLocationDuncan P. N. Exon Smith2015-04-142-17/+13
| | | | llvm-svn: 234819
* DebugInfo: Remove DIObjCProperty attribute accessors, NFCDuncan P. N. Exon Smith2015-04-132-32/+1
| | | | | | | | | There's only one user of the various `DIObjCProperty::is*Property()` accessors -- `DwarfUnit::constructTypeDIE()` -- and it's just using the reverse logic to reconstruct the bitfield. Drop this API and simplify the only caller. llvm-svn: 234818
* ELF: Fix headers including each other.Rui Ueyama2015-04-132-84/+68
| | | | | | | HexagonSectionChunks.h and HexagonTargetHandler.h include each other. This patch removes the former and merge it with the latter. llvm-svn: 234817
* DebugInfo: Move DIDerivedType accessors to MDDerivedType, NFCDuncan P. N. Exon Smith2015-04-132-10/+20
| | | | | | | Add accessors in `MDDerivedType` to downcast `getExtraData()`, matching those in `DIDerivedType`. llvm-svn: 234816
* [Orc] Make the OrcLazy hello.ll regression test output via stderr.Lang Hames2015-04-131-14/+27
| | | | | | | | | | This keeps the program and JIT output in sync, enabling FileCheck to test the order of target program and JIT events. In particular we can now test that main is not compiled until after the global constructor has run. llvm-svn: 234815
* Add new getModRefInfo API to determine whether an Instruction and a call ↵Daniel Berlin2015-04-132-0/+21
| | | | | | modify the same memory llvm-svn: 234814
* Common some code from MemoryDependenceAnalysis that will be used in MemorySSADaniel Berlin2015-04-132-17/+14
| | | | llvm-svn: 234813
* DebugInfo: Make DIDerivedType accessors more strictDuncan P. N. Exon Smith2015-04-131-11/+8
| | | | | | | | These accessors in `DIDerivedType` should only be called when `DbgNode` really is a `MDDerivedType`, not just a `MDDerivedTypeBase`. Assume that it is. llvm-svn: 234812
* Make getModRefInfo with a default location not crash.Daniel Berlin2015-04-134-9/+125
| | | | | | | Add getModRefInfo that works without location. Add unit tests. llvm-svn: 234811
* [Orc] Back out r234805 for hello.ll until I can figure out how to sync up theLang Hames2015-04-131-3/+2
| | | | | | output. llvm-svn: 234810
* [CodeGen] Combine concat_vectors of scalars into build_vector.Ahmed Bougacha2015-04-132-0/+185
| | | | | | | | | | | | | Combine something like: (v8i8 concat_vectors (v2i8 bitcast (i16)) x4) into: (v8i8 (bitcast (v4i16 BUILD_VECTOR (i16) x4))) If any of the scalars are floating point, use that throughout. Differential Revision: http://reviews.llvm.org/D8948 llvm-svn: 234809
* ELF: Move definitions from {Dynamic,ELF}File.h to .cpp files.Rui Ueyama2015-04-135-811/+897
| | | | | | | | | | | | | | | | | | | DynamicFile and ELFFile are instantiated for four different types, ELF{32,64}{BE,LE}. Because the classes are instantiated in each compilation unit, including the header file makes object files 10MB larger. On Windows, issue of excessive template instantiation is critical, since the regular COFF file supports only up to 65534 sections. (We could use the extended COFF file format, but generating that much COMDAT sections is not a good thing in the first place because it means long compile time and long link time.) I confirmed that this change makes AArch64TargetHandler.cpp.o from 21MB to 8.5MB. It feels still too large, but I think it's a good start. llvm-svn: 234808
* Allow printing functions with an optional annotationwriterDaniel Berlin2015-04-132-0/+11
| | | | llvm-svn: 234807
* [Orc] Disambiguate call to make_unique. This should fix the builders broken byLang Hames2015-04-131-1/+2
| | | | | | r234805. llvm-svn: 234806
* [Orc] Add an Orc layer for applying arbitrary transforms to IR, use it to addLang Hames2015-04-134-9/+194
| | | | | | | debugging output to the LLI orc-lazy JIT, and update the orc-lazy "hello.ll" test to actually test for lazy compilation. llvm-svn: 234805
* Add new warning -Wrange-loop-analysis to warn on copies during loops.Richard Trieu2015-04-134-3/+474
| | | | | | | | | | | | -Wrange-loop-analysis is a subgroup of -Wloop-analysis and will warn when a range-based for-loop makes copies of the elements in the range. If possible, suggest the proper type to prevent copies, or the non-reference to help distinguish copy versus non-copy forms. Existing warnings in -Wloop-analysis are moved to -Wfor-loop-analysis, also a subgroup of -Wloop-analysis. Differential Revision: http://reviews.llvm.org/D4169 llvm-svn: 234804
* Skip the ↵Ilia K2015-04-131-0/+1
| | | | | | TestGdbRemoteRegisterState.test_grp_register_save_restore_works_no_suffix_debugserver_dsym test on OS X according to the bug 23181 llvm-svn: 234803
* DebugInfo: Simplify a few more wrappersDuncan P. N. Exon Smith2015-04-131-114/+37
| | | | | | | | | | This is almost NFC, but I'm removing some assertions against `nullptr`. The assertions aren't worth all that much since we'll typically get segfaults at the same site (and I imagine ASan catches this sort of thing), and besides: the whole idea is to replace the `DIDescriptor` hierarchy with raw pointers to the new one. llvm-svn: 234802
* Settle on a specific triple for the aarch64 testcaseKrzysztof Parzyszek2015-04-131-1/+1
| | | | llvm-svn: 234801
* SelectionDAG: Stop using DIVariable::isInlinedFnArgument()Duncan P. N. Exon Smith2015-04-133-14/+3
| | | | | | | | | | | | | | | | | | Instead of calling the somewhat confusingly-named `DIVariable::isInlinedFnArgument()`, do the check directly here. There's possibly a small functionality change here: instead of `dyn_cast<>`'ing `DV->getScope()` to `MDSubprogram`, I'm looking up the scope chain for the actual subprogram. I suspect that this is a no-op for function arguments so in practise there isn't a real difference. I've also added a `FIXME` to check the `inlinedAt:` chain instead, since I wonder if that would be more reliable than the `MDSubprogram::describes()` function. Since this was the only user of `DIVariable::isInlinedFnArgument()`, delete it. llvm-svn: 234799
* [CMake] Updates to llvm-shlib to support overriding exports list and added ↵Chris Bieneman2015-04-132-10/+22
| | | | | | an option to export all symbols. llvm-svn: 234798
* Also add mtriple to the aarch64 testcaseKrzysztof Parzyszek2015-04-131-1/+1
| | | | llvm-svn: 234797
OpenPOWER on IntegriCloud