summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [GlobalISel] Re-apply r260922-260923 with MSVC-friendly code.Quentin Colombet2016-02-1612-127/+243
| | | | | | | | | Original message: Get rid of the ifdefs in TargetLowering. Introduce a new API used only by GlobalISel: CallLowering. This API will contain target hooks dedicated to call lowering. llvm-svn: 260998
* Pass a std::unique_ptr to IRMover::move.Rafael Espindola2016-02-166-62/+63
| | | | | | | It was already the one "destroying" the source module, now the API reflects that. llvm-svn: 260989
* [WebAssembly] Insert COPY_LOCAL between CopyToReg and FrameIndex DAG nodesDerek Schuff2016-02-164-24/+55
| | | | | | | | | | | | | | CopyToReg nodes don't support FrameIndex operands. Other targets select the FI to some LEA-like instruction, but since we don't have that, we need to insert some kind of instruction that can take an FI operand and produces a value usable by CopyToReg (i.e. in a vreg). So insert a dummy copy_local between Op and its FI operand. This results in a redundant copy which we should optimize away later (maybe in the post-FI-lowering peephole pass). Differential Revision: http://reviews.llvm.org/D17213 llvm-svn: 260987
* [AMDGPU] Rename $dst operand to $vdst for VOP instructions.Tom Stellard2016-02-166-77/+120
| | | | | | | | | | | | | | Summary: This change renames output operand for VOP instructions from dst to vdst. This is needed to enable decoding named operands for disassembler. Reviewers: vpykhtin, tstellarAMD, arsenm Subscribers: arsenm, llvm-commits, nhaustov Projects: #llvm-amdgpu-spb Differential Revision: http://reviews.llvm.org/D16920 llvm-svn: 260986
* Revert 260705, it appears to be causing pr26628Philip Reames2016-02-162-76/+0
| | | | | | The root issue appears to be a confusion around what makeNoWrapRegion actually does. It seems likely we need two versions of this function with slightly different semantics. llvm-svn: 260981
* [X86] Enable the LEA optimization pass by default.Andrey Turetskiy2016-02-163-6/+7
| | | | | | Differential Revision: http://reviews.llvm.org/D16877 llvm-svn: 260979
* [WebAssembly] Switch from RPO sorting to topological sorting.Dan Gohman2016-02-162-196/+300
| | | | | | | | | | WebAssembly doesn't require full RPO; topological sorting is sufficient and can preserve more of the MachineBlockPlacement ordering. Unfortunately, this still depends a lot on heuristics, because while we use the MachineBlockPlacement ordering as a guide, we can't use it in places where it isn't topologically ordered. This area will require further attention. llvm-svn: 260978
* A signed bitfield's range is [-1,0], so assigning 1 is technically an ↵Aaron Ballman2016-02-161-1/+1
| | | | | | overflow. However, the other bitfield requires a signed value (it supports negative offsets), so it is slightly better to retain a signed 1-bit bitfield and use -1 instead of 1. Silences an MSVC warning. llvm-svn: 260973
* Reverting r260922-260923; they cause link failures with MSVC.Aaron Ballman2016-02-1612-240/+125
| | | | | | | http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc2015/builds/15436/steps/build/logs/stdio http://bb.pgr.jp/builders/msbuild-llvmclang-x64-msc18-DA/builds/961/steps/build_llvm/logs/stdio llvm-svn: 260972
* [WebAssembly] Create new registers instead of reusing old ones in RegStackify.Dan Gohman2016-02-163-37/+82
| | | | | | | | This avoids some complications updating LiveIntervals to be aware of the new register lifetimes, because we can just compute new intervals from scratch rather than describe how the old ones have been changed. llvm-svn: 260971
* Reapply r260489.Rafael Espindola2016-02-162-0/+41
| | | | | | | | | | Original commit message: [readobj] Dump DT_JMPREL relocations when outputting dynamic relocations. The bits of r260488 it depends on have been committed. llvm-svn: 260970
* [WebAssembly] Implement support for custom NaN bit patterns.Dan Gohman2016-02-165-14/+71
| | | | llvm-svn: 260968
* Introduce a getAsRange helper.Rafael Espindola2016-02-162-26/+10
| | | | | | | | | This requires making an error message a bit more generic, but that seems a reasonable tradeoff. Extracted from r260488 but simplified a bit. llvm-svn: 260967
* Move DynRegionInfo out of the ELFDumper.Rafael Espindola2016-02-161-11/+11
| | | | | | | | This reduces indentation in preparation to adding a bit more code to it. Extracted from r260488. llvm-svn: 260963
* This reverts commit r260488 and r260489.Rafael Espindola2016-02-1610-442/+110
| | | | | | | | | | | Original messages: Revert "[readobj] Handle ELF files with no section table or with no program headers." Revert "[readobj] Dump DT_JMPREL relocations when outputting dynamic relocations." r260489 depends on r260488 and among other issues r260488 deleted error handling code. llvm-svn: 260962
* [X86] PR26575: Fix LEA optimization pass.Andrey Turetskiy2016-02-162-0/+37
| | | | | | | | | | Add a missing check for a type of address displacement operand of the load/store instruction being a candidate for LEA substitution. Ref: https://llvm.org/bugs/show_bug.cgi?id=26575 Differential Revision: http://reviews.llvm.org/D17261 llvm-svn: 260959
* [Hexagon] Hoist nonnull assert up.Benjamin Kramer2016-02-162-1/+1
| | | | | | | | Once a pointer is turned into a reference it cannot be nullptr, clang rightfully warns about this assert being a tautology. Put the assert before the reference is created. llvm-svn: 260949
* Make sure the functions' range is empty before going through it in the LLVM ↵Amaury Sechet2016-02-162-0/+8
| | | | | | C API test llvm-svn: 260947
* [X86] Fix typos. NFCCraig Topper2016-02-161-2/+2
| | | | llvm-svn: 260943
* [X86] Use range-based for loop. NFCCraig Topper2016-02-161-3/+2
| | | | llvm-svn: 260942
* Do some refactoring in constant generation in the C API echo test. NFCAmaury Sechet2016-02-161-8/+10
| | | | llvm-svn: 260941
* [X86] Fix typo in comment. NFCCraig Topper2016-02-161-1/+1
| | | | llvm-svn: 260940
* Generate functions in 2 steps in the C API echo test. NFCAmaury Sechet2016-02-161-6/+32
| | | | llvm-svn: 260939
* [SCEVExpander] Make findExistingExpansion smarterJunmo Park2016-02-164-28/+77
| | | | | | | | | | | | | Summary: Extending findExistingExpansion can use existing value in ExprValueMap. This patch gives 0.3~0.5% performance improvements on benchmarks(test-suite, spec2000, spec2006, commercial benchmark) Reviewers: mzolotukhin, sanjoy, zzheng Differential Revision: http://reviews.llvm.org/D15559 llvm-svn: 260938
* Restore the capability to manipulate datalayout from the C APIAmaury Sechet2016-02-166-0/+38
| | | | | | | | | | | | | | | | | Summary: This consist in variosu addition to the C API: LLVMTargetDataRef LLVMGetModuleDataLayout(LLVMModuleRef M); void LLVMSetModuleDataLayout(LLVMModuleRef M, LLVMTargetDataRef DL); LLVMTargetDataRef LLVMCreateTargetMachineData(LLVMTargetMachineRef T); Reviewers: joker.eph, Wallbraker, echristo Subscribers: axw Differential Revision: http://reviews.llvm.org/D17255 llvm-svn: 260936
* [TableGen] Fix inconsistent spacing. NFCCraig Topper2016-02-161-2/+2
| | | | llvm-svn: 260935
* [TableGen] Stop passing by reference an integer that doesn't get modified. NFCCraig Topper2016-02-162-2/+2
| | | | llvm-svn: 260934
* [TableGen] Remove unused member variable. NFCCraig Topper2016-02-162-3/+0
| | | | llvm-svn: 260933
* Remove an unnecessary std::move to fix -Wpessimizing-move warning.Craig Topper2016-02-161-1/+1
| | | | llvm-svn: 260931
* [TableGen] Use range-based for loop. NFCCraig Topper2016-02-161-2/+2
| | | | llvm-svn: 260928
* Simplify users of StringRef::{l,r}trim (NFC)Vedant Kumar2016-02-163-11/+10
| | | | | | | r260925 introduced a version of the *trim methods which is preferable when trimming a single kind of character. Update all users in llvm. llvm-svn: 260926
* [ADT] Add StringRef::{l,r}trim(char) overloads (NFC)Vedant Kumar2016-02-162-1/+19
| | | | | | | | | Add support for trimming a single kind of character from a StringRef. This makes the common case of trimming null bytes much neater. It's also probably a bit speedier too, since it avoids creating a std::bitset in find_{first,last}_not_of. llvm-svn: 260925
* [GlobalISel][IRTranslator] Override getPassName.Quentin Colombet2016-02-161-0/+4
| | | | llvm-svn: 260924
* [GlobalISel] Add missing file in previous commit.Quentin Colombet2016-02-161-0/+72
| | | | llvm-svn: 260923
* [GlobalISel] Get rid of the ifdefs in TargetLowering.Quentin Colombet2016-02-1611-125/+168
| | | | | | | Introduce a new API used only by GlobalISel: CallLowering. This API will contain target hooks dedicated to call lowering. llvm-svn: 260922
* Deprecate LLVMGetDataLayout and replace it by LLVMGetDataLayoutStrAmaury Sechet2016-02-163-2/+14
| | | | | | | | | | | | Summary: The name is confusing as it matche another method on the module. Reviewers: joker.eph, Wallbraker, echristo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17283 llvm-svn: 260920
* Kill LLVMAddTargetDataAmaury Sechet2016-02-166-19/+2
| | | | | | | | | | | | Summary: It's red, it's dead. Reviewers: joker.eph, Wallbraker, echristo Subscribers: llvm-commits, axw Differential Revision: http://reviews.llvm.org/D17282 llvm-svn: 260919
* MITests: Update libdeps. llvm/Target/TargetOptions.h depends on MC.NAKAMURA Takumi2016-02-161-0/+1
| | | | llvm-svn: 260918
* Implemented stack symbol table ordering/packing optimization to improve data ↵Zia Ansari2016-02-1526-32/+401
| | | | | | | | locality and code size from SP/FP offset encoding. Differential Revision: http://reviews.llvm.org/D15393 llvm-svn: 260917
* Rename LLVMSetDataLayout's argument to match what they stand forAmaury Sechet2016-02-152-3/+3
| | | | llvm-svn: 260916
* unittests/MI: Add Core library referenceMatthias Braun2016-02-151-0/+1
| | | | llvm-svn: 260915
* SmallPtrSet: Avoid initializing Array in the small case.Matthias Braun2016-02-152-74/+93
| | | | | | | | | | | This patch avoids the initial memset at the cost of making iterators slightly more complex. This should be beneficial as most SmallPtrSets hold no or only a few elements, while iterating over them is less common. Differential Revision: http://reviews.llvm.org/D16672 llvm-svn: 260913
* APInt: Slightly simplify countLeadingZerosSlowCase()Matthias Braun2016-02-151-19/+8
| | | | | | | | | We always clear the unused bits in the most signifant word so there is no need to mask them out in countLeadingZerosSlowCase(). Differential Revision: http://reviews.llvm.org/D16621 llvm-svn: 260911
* APInt: Further simplify APInt::EqualSlowCase as suggested by DuncanMatthias Braun2016-02-151-4/+1
| | | | llvm-svn: 260910
* [X86] Remove now-dead variable and redundant assert. NFC.Ahmed Bougacha2016-02-151-2/+0
| | | | | | | The variable was made dead in NDEBUG by r260901, but the assert was redundant anyway: get rid of both. llvm-svn: 260908
* Fix typo in LiveIntervalTestMatthias Braun2016-02-151-1/+1
| | | | llvm-svn: 260907
* LiveIntervalAnalysis: Support moving of subregister defs in handleMoveMatthias Braun2016-02-151-34/+153
| | | | | | | | | | | | | | | | | | | This is an updated version which fixes a bug that happened with uses tied to an earlyclobber operand which end at an unusual slotindex. If two definitions write to independent subregisters then they can be put in any order. LiveIntervalAnalysis::handleMove() did not support this previously because it looks like moving a definition of a vreg past another one. This is a modified version of a patch proposed (two years ago) by Vincent Lejeune! This version does not touch the read-undef flags and is extended for the case of moving a subregister def behind all uses - this can happen for subregister defs that are completely unused. Differential Revision: http://reviews.llvm.org/D9067 llvm-svn: 260906
* Add unittest for LiveIntervalAnalysis::handleMove()Matthias Braun2016-02-153-0/+319
| | | | llvm-svn: 260905
* MachineVerifier: Add parameter to choose if MachineFunction::verify() abortsMatthias Braun2016-02-152-13/+18
| | | | | | | The abort on error behaviour is unpractical for debugger and unittest usage. llvm-svn: 260904
* [NFC] Fixing naming convention, lowercase start of function name.Colin LeMahieu2016-02-156-33/+33
| | | | llvm-svn: 260903
OpenPOWER on IntegriCloud