summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [x86] show missed opportunities to use andnSanjay Patel2016-04-081-0/+45
| | | | llvm-svn: 265850
* Remove even more of the data formatters that silently run codeEnrico Granata2016-04-087-257/+2
| | | | | | Fixes <rdar://problem/25629755> llvm-svn: 265849
* PR25501: Delay loading visible updates for a declaration until after we'veRichard Smith2016-04-088-15/+40
| | | | | | | | | | | processed update records. If an update record adds a definition, we need to merge that with any pre-existing definition to determine which the canonical definition is before we apply the visible update, otherwise we wouldn't know where to apply it. Thanks to Vassil Vassilev for help reducing this and tracking down the problem. llvm-svn: 265848
* Fix a crash bug in --start-lib.Rui Ueyama2016-04-084-9/+26
| | | | | | | | Previously, Lazy symbols were created for undefined symbols even though such symbols cannot be resolved by loading object files. This patch fixes that bug. llvm-svn: 265847
* Rangeify a loop. NFC.Hans Wennborg2016-04-081-4/+3
| | | | llvm-svn: 265846
* Remove some redundant variables from X86TargetLowering::LowerDYNAMIC_STACKALLOCHans Wennborg2016-04-081-3/+0
| | | | | | These are already defined, with the same values, a few lines up. NFC. llvm-svn: 265845
* Add doxygen comments to emmintrin.h's intrinsics. Only around 25% of the ↵Ekaterina Romanova2016-04-081-1/+939
| | | | | | | | | | intrinsics in this file are documented now. The patches for the rest of the intrisics in this file will be send out later. The doxygen comments are automatically generated based on Sony's intrinsics document. I got an OK from Eric Christopher to commit doxygen comments without prior code review upstream. This patch was internally reviewed by Paul Robinson. llvm-svn: 265844
* Reset continue_after_async only if neither SIGINIT nor SIGSTOP received.Oleksiy Vyalov2016-04-084-4/+66
| | | | | | http://reviews.llvm.org/D18886 llvm-svn: 265843
* Codegen: Factor tail duplication into a utility class. NFCKyle Butt2016-04-084-949/+1011
| | | | | | | | | | | This is in preparation for tail duplication during block placement. See D18226. This needs to be a utility class for 2 reasons. No passes may run after block placement, and also, tail-duplication affects subsequent layout decisions, so it must be interleaved with placement, and can't be separated out into its own pass. The original pass is still useful, and now runs by delegating to the utility class. llvm-svn: 265842
* [x86] regenerate checks for BMI testsSanjay Patel2016-04-081-149/+296
| | | | llvm-svn: 265841
* test commitEvgeny Stupachenko2016-04-081-2/+2
| | | | llvm-svn: 265840
* [analyzer] Teach trackNullOrUndefValue about calls to property accessors.Devin Coughlin2016-04-082-0/+42
| | | | | | | | | | | Teach trackNullOrUndefValue() how to look through PseudoObjectExprs to find the underlying method call for property getters. This makes over-suppression of 'return nil' in getters consistent with the similar over-suppression for method and function calls. rdar://problem/24437252 llvm-svn: 265839
* [modules] Handle merged fields in designated initializers.Richard Smith2016-04-083-3/+17
| | | | llvm-svn: 265838
* Add trailing colons to labels in a test.James Y Knight2016-04-081-12/+12
| | | | | | | This will avoid matching on the FILENAME if it happened to contain, say, "f4" anywhere in the file path. llvm-svn: 265837
* Fix Load Control Dependence in MemCpy GenerationNirav Dave2016-04-083-65/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Memcpy lowering we had missed a dependence from the load of the operation to successor operations. This causes us to potentially construct an in initial DAG with a memory dependence not fully represented in the chain sub-DAG but rather require looking at the entire DAG breaking alias analysis by allowing incorrect repositioning of memory operations. To work around this, r200033 changed DAGCombiner::GatherAllAliases to be conservative if any possible issues to happen. Unfortunately this check forbade many non-problematic situations as well. For example, it's common for incoming argument lowering to add a non-aliasing load hanging off of EntryNode. Then, if GatherAllAliases visited EntryNode, it would find that other (unvisited) use of the EntryNode chain, and just give up entirely. Furthermore, the check was incomplete: it would not actually detect all such potentially problematic DAG constructions, because GatherAllAliases did not guarantee to visit all chain nodes going up to the root EntryNode. This is in general fine -- giving up early will just miss a potential optimization, not generate incorrect results. But, for this non-chain dependency detection code, it's possible that you could have a load attached to a higher-up chain node than any which were visited. If that load aliases your store, but the only dependency is through the value operand of a non-aliasing store, it would've been missed by this code, and potentially reordered. With the dependence added, this check can be removed and Alias Analysis can be much more aggressive. This fixes code quality regression in the Consecutive Store Merge cleanup (D14834). Test Change: ppc64-align-long-double.ll now may see multiple serializations of its stores Differential Revision: http://reviews.llvm.org/D18062 llvm-svn: 265836
* ValueMapper: Extract llvm::RemapFunction from IRMover.cpp, NFCDuncan P. N. Exon Smith2016-04-083-25/+49
| | | | | | | | | | | | | | Strip out the remapping parts of IRLinker::linkFunctionBody and put them in ValueMapper.cpp under the name Mapper::remapFunction (with a top-level entry-point llvm::RemapFunction). This is a nice cleanup on its own since it puts the remapping code together and shares a single Mapper context for the entire IRLinker::linkFunctionBody Call. Besides that, this will make it easier to break the co-recursion between IRMover.cpp and ValueMapper.cpp in follow ups. llvm-svn: 265835
* [FIX] Do not crash on opaque (unsized) types.Johannes Doerfert2016-04-082-0/+30
| | | | llvm-svn: 265834
* ValueMapper: Always use Mapper::mapValue from remapInstruction, NFCIDuncan P. N. Exon Smith2016-04-081-2/+1
| | | | | | | | | | | | Use Mapper::mapValue instead of llvm::MapValue from Mapper::remapInstruction when mapping an incoming block for a PHINode (follow-up to r265832). This will implicitly pass along the Materializer argument, but when this code was added in r133513 there was no Materializer argument. I suspect this call to MapValue was just missed in r182776 since it's not observable (basic blocks can't be materialized, and they don't reference other values). llvm-svn: 265833
* ValueMapper: Roll RemapInstruction into Mapper, NFCDuncan P. N. Exon Smith2016-04-082-8/+19
| | | | | | | | | | | | Add Mapper::remapInstruction, move the guts of llvm::RemapInstruction into it, and use the same Mapper for most of the calls to MapValue and MapMetadata. There should be no functionality change here. I left off the call to MapValue that wasn't passing in a Materializer argument (for basic blocks of PHINodes). It shouldn't change functionality either, but I'm suspicious enough to commit separately. llvm-svn: 265832
* Linker: Always pass RF_IgnoreMissingLocals; NFCDuncan P. N. Exon Smith2016-04-081-3/+3
| | | | | | | | | | | This is a cleanup after clarifying the meaning of RF_IgnoreMissingLocals in r265628 and truly limiting it to locals in r265768. This should have no functionality change, since the only context that the flag has an effect is when we could hit function-local Value and Metadata, and we were already passing it in those contexts. llvm-svn: 265831
* [X86] Fix PR23155 by turning on X86FixupBWInsts by default.Kevin B. Smith2016-04-084-5/+5
| | | | | | Differential Revision: http://reviews.llvm.org/D18866 llvm-svn: 265830
* Fix #ifdef __APPLE__ code is the swig Python bindingsTodd Fiala2016-04-081-2/+2
| | | | | | | | | | This code was getting evaluated unintentionally at binding generation time instead of binding file compilation time. Addresses: https://bugs.swift.org/browse/SR-1192 llvm-svn: 265829
* ValueMapper: Don't memoize metadata when RF_NoModuleLevelChangesDuncan P. N. Exon Smith2016-04-083-2/+34
| | | | | | | | | Prevent the Metadata side-table in ValueMap from growing unnecessarily when RF_NoModuleLevelChanges. As a drive-by, make ValueMap::hasMD, which apparently had no users until I used it here for testing, actually compile. llvm-svn: 265828
* ValueMapper: Stop memoizing MDStringsDuncan P. N. Exon Smith2016-04-082-2/+21
| | | | | | | | | | | | | | | Stop adding MDString to the Metadata section of the ValueMap in MapMetadata. It blows up the size of the map for no benefit, since we can always return quickly anyway. There is a potential follow-up that I don't think I'll push on right away, but maybe someone else is interested: stop checking for a pre-mapped MDString, and move the `isa<MDString>()` checks in Mapper::mapSimpleMetadata and MDNodeMapper::getMappedOp in front of the `VM.getMappedMD()` calls. While this would preclude explicitly remapping MDStrings it would probably be a little faster. llvm-svn: 265827
* Cleanup the handling of MustBeInDynSym and IsUsedInRegularObj.Rafael Espindola2016-04-087-22/+45
| | | | | | | | | | | | | | | | | | Now MustBeInDynSym is only true if the symbol really must be in the dynamic symbol table. IsUsedInRegularObj is only true if the symbol is used in a .o or -u. Not a .so or a .bc. A benefit is that this is now done almost entirilly during symbol resolution. The only exception is copy relocations because of aliases. This includes a small fix in that protected symbols in .so don't force executable symbols to be exported. This also opens the way for implementing internalize for -shared. llvm-svn: 265826
* Propagate Undef in llvm.cos IntrinsicSanjoy Das2016-04-082-0/+31
| | | | | | | | | | | | | | | | | | Summary: The llvm cos intrinsic currently does not propagate undef's. This change transforms cos(undef) to null value or 0. There are 2 test cases added as well. Patch by Anna Thomas! Reviewers: sanjoy Subscribers: majnemer, llvm-commits Differential Revision: http://reviews.llvm.org/D18863 llvm-svn: 265825
* [FIX] Teach the ScopExpander about parallel subfunctionsJohannes Doerfert2016-04-082-5/+58
| | | | llvm-svn: 265824
* Collect and verify generated parallel subfunctionsJohannes Doerfert2016-04-083-0/+13
| | | | | | | | We verify the optimized function now for a long time and it helped to track down bugs early. This will now also happen for all parallel subfunctions we generate. llvm-svn: 265823
* Revert r265817Colin LeMahieu2016-04-0862-107/+105
| | | | | | lld tests need to be addressed. llvm-svn: 265822
* fix missing import of 'time' in lldbutil.wait_for_file_on_targetTodd Fiala2016-04-081-0/+1
| | | | | | | | | This triggers in some timeout scenarios in the LLDB test suite. Fixes: https://bugs.swift.org/browse/SR-1193 llvm-svn: 265821
* Cleanups to command alias to refer to itself as 'command alias' and not ↵Enrico Granata2016-04-081-5/+17
| | | | | | allow to make aliases starting with a - as that isn't really supported, and is most often a mistake (trying to pass options) llvm-svn: 265820
* Add help for our regular expression commands when aliasedEnrico Granata2016-04-081-16/+12
| | | | llvm-svn: 265819
* Append a missing \nEnrico Granata2016-04-081-1/+1
| | | | llvm-svn: 265818
* [llvm-objdump] Printing hex instead of dec by defaultColin LeMahieu2016-04-0861-104/+106
| | | | | | Differential Revision: http://reviews.llvm.org/D18770 llvm-svn: 265817
* Always have clang pass -pie-level and -pic-level values to the code generator.Wei Mi2016-04-081-7/+12
| | | | | | | | Patch by tmsriram! Differential Revision: http://reviews.llvm.org/D18843 llvm-svn: 265816
* [Object] Report an error if .alt_entry is used with ELF or COFF.Lang Hames2016-04-082-1/+3
| | | | | | | I'm looking into a better way to do this long-term, but for now at least don't crash. llvm-svn: 265815
* [SystemZ] Support conditional sibling calls via BRCLUlrich Weigand2016-04-084-1/+395
| | | | | | | | | | | | This adds a conditional variant of CallJG instruction, CallBRCL. It can be used for conditional sibling calls. Unfortunately, due to IfCvt limitations, it only really works well for functions without arguments. Author: koriakin Differential Revision: http://reviews.llvm.org/D18864 llvm-svn: 265814
* [Release Notes] Sort checks alphabetically.Eugene Zelenko2016-04-081-7/+6
| | | | llvm-svn: 265813
* [RegBankSelect] Use reverse post order traversal.Quentin Colombet2016-04-081-2/+12
| | | | | | | | When assigning the register banks of an instruction, it is best to know all the constraints of the input to have a good idea of how this will impact the cost of the whole function. llvm-svn: 265812
* [AArch64] Add a test case for the default mapping of RegBankSelect.Quentin Colombet2016-04-081-0/+49
| | | | llvm-svn: 265811
* [RegisterBankInfo] Change the implementation for the default mapping.Quentin Colombet2016-04-081-1/+14
| | | | | | | | | | Do not give that much importance to the current register bank of an operand. This is likely just a side effect of the current execution and it is properly wise to prefer a register bank that can be extracted from the information available statically (like encoding constraints and type). llvm-svn: 265810
* Add testcase from PR27218. NFC.Michael Kruse2016-04-081-0/+49
| | | | | | | The the bug has already been fixed r265795, but this second testcase still useful. llvm-svn: 265809
* Remove bad indentation introduced in 263859Luke Drummond2016-04-081-21/+21
| | | | | | | This commit touches whitespace only. This commit was the original intention of the botched 265797 llvm-svn: 265808
* Move EABIVersion from CodeGenOptions to TargetOptionsSaleem Abdulrasool2016-04-084-21/+22
| | | | | | | | | It is possible to argue that the EABIVersion field is similar in spirit to the ABI field in TargetOptions. It represents the embedded ABI that the target follows. This will allow us to thread this information into the target information construction. llvm-svn: 265807
* revert SVN r265702, r265640Saleem Abdulrasool2016-04-0836-426/+339
| | | | | | | | | | | Revert the two changes to thread CodeGenOptions into the TargetInfo allocation and to fix the layering violation by moving CodeGenOptions into Basic. Code Generation is arguably not particularly "basic". This addresses Richard's post-commit review comments. This change purely does the mechanical revert and will be followed up with an alternate approach to thread the desired information into TargetInfo. llvm-svn: 265806
* [InstCombine] Fix miscompile in FoldSPFofSPFDavid Majnemer2016-04-082-0/+22
| | | | | | | | | | | We had a select of a cast of a select but attempted to replace the outer select with the inner select dispite their incompatible types. Patch by Anton Korobeynikov! This fixes PR27236. llvm-svn: 265805
* [RegBankSelect] Improve debug output.Quentin Colombet2016-04-081-1/+10
| | | | | | | | Add verbose information when checking if the current and the desired register banks match. Detail what happens when we assign a register bank. llvm-svn: 265804
* Fix missing include on OpenBSDMehdi Amini2016-04-081-0/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 265803
* [MIR] Teach the parser how to deal with register banks.Quentin Colombet2016-04-082-11/+52
| | | | llvm-svn: 265802
* [InstCombine] Add a peephole for redundant assumesDavid Majnemer2016-04-081-2/+7
| | | | | | | | | | Two or more identical assumes are occasionally next to each other in a basic block. While our generic machinery will turn a redundant assume into a no-op, it is not super cheap. We can perform a simpler check to achieve the same result for this case. llvm-svn: 265801
OpenPOWER on IntegriCloud