summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ValueTracking: Small cleanup in ComputeNumSignBitsDavid Majnemer2014-12-261-2/+2
| | | | | | | Constant contains the isAllOnesValue and isNullValue predicates, not ConstantInt. llvm-svn: 224848
* InstCombe: Infer nsw for multipliesDavid Majnemer2014-12-265-89/+103
| | | | | | | We already utilize this logic for reducing overflow intrinsics, it makes sense to reuse it for normal multiplies as well. llvm-svn: 224847
* Teach disassembler to handle illegal immediates on (v)cmpps/pd/ss/sd ↵Craig Topper2014-12-266-71/+84
| | | | | | instructions. Instead of rejecting we'll just generate the _alt forms that don't try to alter the mnemonic. While I'm here, merge some common code in the Instruction printers for the condition code replacement and fix the mask on SSE to be 3-bits instead of 4. llvm-svn: 224846
* Use MCPhysReg for table of register encodings.Craig Topper2014-12-261-3/+3
| | | | llvm-svn: 224845
* Sema: Qualify getPrintable's Expr argumentDavid Majnemer2014-12-261-1/+1
| | | | | | | | getPrintable has an overload which takes a bool. This means that const qualified Exprs would get forwarded to the bool overload instead of the Expr overload. llvm-svn: 224844
* WIPDavid Majnemer2014-12-261-16/+16
| | | | llvm-svn: 224843
* [PowerPC] [FastISel] i1 constants must be zero extendedHal Finkel2014-12-252-1/+28
| | | | | | | | | | | When materializing constant i1 values, they must be zero extended. We represent i1 values as [0, 1], not [0, -1], in i32 registers. As it turns out, this code path was dead for i1 values prior to r216006 (which is why this did not manifest in miscompiles until recently). Fixes -O0 self-hosting on PPC64/Linux. llvm-svn: 224842
* [sanitizer] Tweak sancov.py output.Evgeniy Stepanov2014-12-251-1/+1
| | | | llvm-svn: 224841
* [sanitizer] sancov.py: print status to stderrEvgeniy Stepanov2014-12-251-1/+1
| | | | llvm-svn: 224840
* [asan] Disable __sanitizer_cov_dump registration on Windows.Evgeniy Stepanov2014-12-251-0/+2
| | | | | | Looks like we can't use atexit() during ASan initialization on Windows. llvm-svn: 224839
* [asan] Allow enabling coverage at activation.Evgeniy Stepanov2014-12-259-68/+147
| | | | llvm-svn: 224838
* Simplify allocator_returns_null.cc testTimur Iskhodzhanov2014-12-251-6/+6
| | | | llvm-svn: 224837
* Initialize BackendConsumer::Context in constructor.Yaron Keren2014-12-251-1/+1
| | | | llvm-svn: 224836
* Initialize CodeGeneratorImpl::Ctx in constructor.Yaron Keren2014-12-251-1/+1
| | | | llvm-svn: 224835
* tsan: fix trace initialization during thread id reuseDmitry Vyukov2014-12-251-7/+5
| | | | | | | | | The current code leaves the first event in the trace part uninitialized (from the previous thread). It can cause unpredictable behavior during stack/mutexset restoration. Initialize the first event to a fake harmless memory access. llvm-svn: 224834
* Silence GCC's -Wparentheses warningDavid Majnemer2014-12-251-1/+1
| | | | | | No functionality change intended. llvm-svn: 224833
* Documentation for Masked Load and Store intrinsics.Elena Demikhovsky2014-12-251-0/+87
| | | | llvm-svn: 224832
* [Mips] Replace stderr output by the `llvm_unreachable` callSimon Atanasyan2014-12-252-52/+4
| | | | | | | | | If a regular symbol has microMIPS-bit we need to stop linking. Now the LLD does not check the `applyRelocation` return value and continues linking anyway. As a temporary workaround use the `llvm_unreachable` call to stop the linker. llvm-svn: 224831
* [Mips] Make the test more tolerant to the linker output orderSimon Atanasyan2014-12-251-7/+7
| | | | | | | The LLD output in the YAML mode depends on LLD_RUN_ROUNDTRIP_TEST environment variable. Do not check unimportant YAML items like section-name. llvm-svn: 224830
* Masked Load/Store - Changed the order of parameters in intrinsics.Elena Demikhovsky2014-12-2511-74/+101
| | | | | | | No functional changes. The documentation is coming. llvm-svn: 224829
* CodeGen: Error on redefinitions instead of assertingDavid Majnemer2014-12-243-5/+29
| | | | | | | It's possible to have a prior definition of a symbol in module asm. Raise an error instead of crashing. llvm-svn: 224828
* CodeGen: Allow aliases to be overridden by variablesDavid Majnemer2014-12-242-0/+13
| | | | llvm-svn: 224827
* [Mips] Support linking of microMIPS 32-bit codeSimon Atanasyan2014-12-2441-84/+4516
| | | | | | | The change is rather large but mainly it just adds handling of new relocations, PLT entries etc. llvm-svn: 224826
* MC: address some comments in deprecation checksSaleem Abdulrasool2014-12-241-4/+4
| | | | | | | | | Bob Wilson pointed out the unnecessary checks that had been committed to the instruction check predicates. The check was meant to ensure that the check was not accidentally applied to non-ARM instructions. This is better served as an assertion rather than a condition check. llvm-svn: 224825
* [asan] Support ASAN_ACTIVATION_OPTIONS.Evgeniy Stepanov2014-12-242-1/+15
| | | | | | | | This is mostly useful for testing, as the only other way of specifying activation options (Android system property) is system-wide and affects concurrently running tests. llvm-svn: 224824
* [ASan/Win] Bandaid fix for PR22025 -- deadlocks when creating suspended threadsTimur Iskhodzhanov2014-12-242-15/+40
| | | | llvm-svn: 224823
* [sanitizer] Disable InternalMmapWithOffset test on OSX.Evgeniy Stepanov2014-12-241-1/+1
| | | | llvm-svn: 224822
* [sanitizer] Fix off-by-8x in direct coverage.Evgeniy Stepanov2014-12-242-4/+27
| | | | | | File mapping offset was calculated by offsetting (uptr *) instead of (char *). llvm-svn: 224821
* [sanitizer] Disable InternalMmapWithOffset test on Windows.Evgeniy Stepanov2014-12-241-0/+3
| | | | llvm-svn: 224820
* [sanitizer] mmap2 syscall works with 4096-byte units instead of bytes.Evgeniy Stepanov2014-12-242-21/+51
| | | | | | Ouch. llvm-svn: 224819
* [asan] Disable one test on Android.Evgeniy Stepanov2014-12-241-0/+2
| | | | | | It used to pass by chance and started failing on recent Android builds. llvm-svn: 224818
* [Mips] Join two if statementsSimon Atanasyan2014-12-241-3/+1
| | | | | | No functional changes. llvm-svn: 224817
* [Mips] Make the comment more descriptiveSimon Atanasyan2014-12-241-1/+1
| | | | | | No functional changes. llvm-svn: 224816
* [Mips] Factor out the code checks a symbol's bindingSimon Atanasyan2014-12-241-5/+6
| | | | | | No functional changes. llvm-svn: 224815
* [Mips] Rename the function s/readAddend/getAddend/Simon Atanasyan2014-12-241-4/+4
| | | | | | No functional changes. llvm-svn: 224814
* [Mips] Use OR operation to set the microMIPS bitSimon Atanasyan2014-12-242-2/+2
| | | | llvm-svn: 224813
* [ASan] Fix asan_preload_test-2 on PowerPC64 LinuxJay Foad2014-12-241-2/+2
| | | | | | | | | | | | | | | | | Summary: This test failed because clang compiled the call to memset() into a single sth instruction, instead of a call. Fix it by using write() instead of memset(). Reviewers: kcc, samsonov, garious, eugenis Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6776 llvm-svn: 224812
* MC: Label definitions are permitted after .set directivesDavid Majnemer2014-12-245-1/+49
| | | | | | | | | .set directives may be overridden by other .set directives as well as label definitions. This fixes PR22019. llvm-svn: 224811
* IAS: correct debug line info for asm macrosSaleem Abdulrasool2014-12-242-4/+28
| | | | | | | | | | | | | | | | | Correct the line information generation for preprocessed assembly. Although we tracked the source information for the macro instantiation, we failed to account for the fact that we were instantiating a macro, which is populated into a new buffer and that the line information would be relative to the definition rather than the actual instantiation location. This could cause the line number associated with the statement to be very high due to wrapping of the difference calculated for the preprocessor line information emitted into the stream. Properly calculate the line for the macro instantiation, referencing the line where the macro is actually used as GCC/gas do. The test case uses x86, though the same problem exists on any other target using the LLVM IAS. llvm-svn: 224810
* [X86] Remove the single AdSize indicator and replace it with separate ↵Craig Topper2014-12-248-98/+119
| | | | | | | | AdSize16/32/64 flags. This removes a hardcoded list of instructions in the CodeEmitter. Eventually I intend to remove the predicates on the affected instructions since in any given mode two of them are valid if we supported addr32/addr16 prefixes in the assembler. llvm-svn: 224809
* MC: Don't emit .no_dead_strip on targets which don't support itDavid Majnemer2014-12-242-2/+8
| | | | llvm-svn: 224808
* LiveInterval: Remove accidentally committed debug code.Matthias Braun2014-12-241-10/+0
| | | | llvm-svn: 224807
* LiveInterval: Introduce createMainRangeFromSubranges().Matthias Braun2014-12-243-7/+234
| | | | | | | | | | | | | | | | | | | | This function constructs the main liverange by merging all subranges if subregister liveness tracking is available. This should be slightly faster to compute instead of performing the liveness calculation again for the main range. More importantly it avoids cases where the main liverange would cover positions where no subrange was live. These cases happened for partial definitions where the actual defined part was dead and only the undefined parts used later. The register coalescing requires that every part covered by the main live range has at least one subrange live. I also expect this function to become usefull later for places where the subranges are modified in a way that it is hard to correctly fix the main liverange in the machine scheduler, we can simply reconstruct it from subranges then. llvm-svn: 224806
* RegisterCoalescer: With subrange liveness there may be no RedefVNI for ↵Matthias Braun2014-12-241-3/+6
| | | | | | unused lanes. llvm-svn: 224805
* LiveRangeEdit: Check for completely empy subranges after removing ValNos.Matthias Braun2014-12-241-0/+1
| | | | | | | Completely empty subranges are not allowed and must be removed when subreg liveness is enabled. llvm-svn: 224804
* LiveIntervalAnalysis: Fix performance bug that I introduced in r224663.Matthias Braun2014-12-241-2/+2
| | | | | | | | Without a reference the code did not remember when moving the iterators of the subranges/registerunit ranges forward and instead would scan from the beginning again at the next position. llvm-svn: 224803
* [OCaml] PR21901: Update tests.Peter Zotov2014-12-241-2/+2
| | | | | | This finishes the fix partially applied by r224782. llvm-svn: 224802
* [OCaml] Expose Llvm_executionengine.get_{global_value,function}_address.Peter Zotov2014-12-244-17/+49
| | | | | | | | | Patch by Ramkumar Ramachandra <artagnon@gmail.com>. Also remove Llvm_executionengine.get_pointer_to_global, as it is actually deprecated and didn't appear in a stable release. llvm-svn: 224801
* [SROA] Update the documentation and names for accessing the slicesChandler Carruth2014-12-241-29/+36
| | | | | | | | | | | | | | | | | | | | | within a partition of an alloca in SROA. This reflects the fact that the organization of the slices isn't really ideal for analysis, but is the naive way in which the slices are available while we're processing them in the core partitioning algorithm. It is possible we could improve matters, and I've left a FIXME with one of my ideas for how to do this, but it is a lot of work, the benefit is somewhat minor, and it isn't clear that it would be strictly better. =/ Not really satisfying, but I'm out of really good ideas. This also improves one place where the debug logging failed to mark some split partitions. Now we log in one place, slightly later, and with accurate information about whether the slice is split by the partition being rewritten. llvm-svn: 224800
* Debug Info: In symmetry to DW_TAG_pointer_type, do not emit the byte sizeAdrian Prantl2014-12-242-1/+46
| | | | | | | of a DW_TAG_ptr_to_member_type. This restores the behavior from before r224780-r224781. llvm-svn: 224799
OpenPOWER on IntegriCloud