summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Add ELFRelocs/WebAssembly.def as a "textual header" to the ↵Dan Gohman2016-01-121-0/+1
| | | | | | module map. llvm-svn: 257515
* [WebAssembly] Introduce a WebAssemblyTargetStreamer class.Dan Gohman2016-01-129-64/+225
| | | | | | | Refactor .param, .result, .local, and .endfunc, as directives, using the proper MCTargetStreamer mechanism, rather than fake instructions. llvm-svn: 257511
* Replace inherited constructor with an explicit oneKrzysztof Parzyszek2016-01-121-2/+2
| | | | | | Some bots failed when the inherited constructor was used. llvm-svn: 257508
* [WebAssembly] Make CFG stackification independent of basic-block labels.Dan Gohman2016-01-1211-346/+541
| | | | | | | | | | | | | | | | | | | | | | | This patch changes the way labels are referenced. Instead of referencing the basic-block label name (eg. .LBB0_0), instructions now just have an immediate which indicates the depth in the control-flow stack to find a label to jump to. This makes them much closer to what we expect to have in the binary encoding, and avoids the problem of basic-block label names not being explicit in the binary encoding. Also, it terminates blocks and loops with end_block and end_loop instructions, rather than basic-block label names, for similar reasons. This will also fix problems where two constructs appear to have the same label, because we no longer explicitly use labels, so consumers that need labels will presumably create their own labels, and presumably they won't reuse labels when they do. This patch does make the code a little more awkward to read; as a partial mitigation, this patch also introduces comments showing where the labels are, and comments on each branch showing where it's branching to. llvm-svn: 257505
* [Hexagon] Implement RDF-based post-RA optimizationsKrzysztof Parzyszek2016-01-128-3/+459
| | | | | | | | - Handle simple cases of register copies (what current RDF CP allows). - Hexagon-specific dead code elimination: handles dead address updates in post-increment instructions. llvm-svn: 257504
* [LibCallSimplifier] use instruction-level fast-math-flags to transform ↵Sanjay Patel2016-01-122-9/+10
| | | | | | | | pow(x, 0.5) calls Also, propagate the FMF to the newly created sqrt() call. llvm-svn: 257503
* [ORC] More cleanup, partially aimed at working around GCC ICE.Lang Hames2016-01-121-6/+2
| | | | llvm-svn: 257501
* rangify; NFCISanjay Patel2016-01-121-12/+10
| | | | llvm-svn: 257500
* Auto-link with ole32.dll to simplify building LLVM.dllReid Kleckner2016-01-121-0/+1
| | | | | | Patch by Jakob Bornecrantz llvm-svn: 257499
* [Orc] Replace lambda with a helper method.Lang Hames2016-01-121-4/+1
| | | | | | This is good cleanup, but I'm also hoping it'll fix some more GCC ICEs. llvm-svn: 257498
* function names start with a lower case letter ; NFCSanjay Patel2016-01-127-24/+24
| | | | llvm-svn: 257496
* Fix bot failure from r257493: remove extraneous temp file readTeresa Johnson2016-01-121-1/+1
| | | | | | This was left from an earlier version of the test. llvm-svn: 257494
* [ThinLTO] Handle an external call from an import to an alias in destTeresa Johnson2016-01-123-0/+34
| | | | | | | | | The findExternalCalls routine ignores calls to functions already defined in the dest module. This was not handling the case where the definition in the current module is actually an alias to a function call. llvm-svn: 257493
* [LibCallSimplifier] use instruction-level fast-math-flags to transform ↵Sanjay Patel2016-01-122-28/+22
| | | | | | | | | | | | | | pow(exp(x)) calls See also: http://reviews.llvm.org/rL255555 http://reviews.llvm.org/rL256871 http://reviews.llvm.org/rL256964 http://reviews.llvm.org/rL257400 http://reviews.llvm.org/rL257404 http://reviews.llvm.org/rL257414 llvm-svn: 257491
* RDF: Copy propagationKrzysztof Parzyszek2016-01-123-0/+229
| | | | | | | | | | This is a very limited implementation of DFG-based copy propagation. It only handles actual COPY instructions (does not handle other equivalents such as add-immediate with a 0 operand). The major limitation is that it does not update the DFG: that will be the change required to make it more robust (hopefully coming up soon). llvm-svn: 257490
* AMDGPU: Emit note directive for HSA even if there are no functionsTom Stellard2016-01-123-7/+27
| | | | | | | | | | Reviewers: arsenm, echristo Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16010 llvm-svn: 257488
* [Orc] Clang-format.Lang Hames2016-01-121-8/+6
| | | | llvm-svn: 257487
* [Orc] Take another shot at working around the GCC 4.7 ICE inLang Hames2016-01-121-32/+29
| | | | | | http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/27486 llvm-svn: 257486
* RDF: Dead code eliminationKrzysztof Parzyszek2016-01-123-0/+270
| | | | | | Utility class to perform DFG-based dead code elimination. llvm-svn: 257485
* consolidate exp/exp2 testsSanjay Patel2016-01-122-19/+12
| | | | | | The transform is identical, so keep the tests together and save some overhead. llvm-svn: 257484
* Fix compiler warnings from r257477Krzysztof Parzyszek2016-01-121-2/+2
| | | | llvm-svn: 257483
* [libFuzzer] add a macro LLVM_FUZZER_DEFINES_SANITIZER_WEAK_HOOOKSKostya Serebryany2016-01-121-0/+8
| | | | llvm-svn: 257482
* Add/edit tests to include instruction-level FMF on callsSanjay Patel2016-01-121-16/+28
| | | | | | | | | Prepatory patch before changing LibCallSimplifier to use the FMF. Also, tighten the CHECK lines and give the tests more meaningful names. Similar changes to: http://reviews.llvm.org/rL257414 llvm-svn: 257481
* RDF: Implement register liveness analysisKrzysztof Parzyszek2016-01-123-0/+955
| | | | | | Compute block live-ins and operand kill flags from the DFG. llvm-svn: 257480
* [mips] Correct operand order in DSP's mthi/mtloDaniel Sanders2016-01-122-9/+10
| | | | | | | | | | | | Summary: The result register is the second operand as per the other mt* instructions. Reviewers: vkalintiris Subscribers: llvm-commits, dsanders Differential Revision: http://reviews.llvm.org/D15993 llvm-svn: 257478
* Register Data Flow: data flow graphKrzysztof Parzyszek2016-01-123-0/+2558
| | | | | | | | | Target independent, SSA-based data flow framework for representing data flow between physical registers. This commit implements the creation of the actual data flow graph. llvm-svn: 257477
* [Hexagon] Make helper function static. NFC.Benjamin Kramer2016-01-121-3/+3
| | | | llvm-svn: 257476
* Fix test on windows.Rafael Espindola2016-01-121-1/+1
| | | | llvm-svn: 257475
* [ARM] Fix several state persistence bugsKeno Fischer2016-01-124-4/+40
| | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes three bugs, in all of which state is not or incorrecly reset between objects (i.e. when reusing the same pass manager to create multiple object files): 1) AttributeSection needs to be reset to nullptr, because otherwise the backend will try to emit into the old object file's attribute section causing a segmentation fault. 2) MappingSymbolCounter needs to be reset, otherwise the second object file will start where the first one left off. 3) The MCStreamer base class resets the Streamer's e_flags settings. Since EF_ARM_EABI_VER5 is set on streamer creation, we need to set it again after the MCStreamer was rest. Also rename Reset (uppser case) to EHReset to avoid confusion with reset (lower case). Reviewers: rengolin Differential Revision: http://reviews.llvm.org/D15950 llvm-svn: 257473
* Test commit access - tiny comment and code style fix.Andrey Turetskiy2016-01-121-2/+2
| | | | llvm-svn: 257472
* The isel pattern that selects the memory-register form of VCVTPH2PSRobert Lougher2016-01-122-0/+15
| | | | | | | | | | | | | | | (64 to 128-bit) matches against the pattern fragment 'vzmovl_v2i64' (a zero-extended 64-bit load). However, a change in r248784 teaches the instruction combiner that only the lower 64 bits of the input to a 128-bit vcvtph2ps are used. This means the instruction combiner will ordinarily optimize away the upper 64-bit insertelement instruction in the zero-extension and so we no longer select the memory-register form. To fix this a new pattern has been added. Differential Revision: http://reviews.llvm.org/D16067 llvm-svn: 257470
* The --debug-only option now takes a comma separated list of debug types.Christof Douma2016-01-122-4/+10
| | | | | | | | | This means that the DEBUG_TYPE cannot take a comma anymore. All existing passes conform to this rule. Differential Revision: http://reviews.llvm.org/D15645 llvm-svn: 257466
* AVX512: VPMOVAPS/PD and VPMOVUPS/PD (load) intrinsic implementation.Igor Breger2016-01-127-67/+334
| | | | | | Differential Revision: http://reviews.llvm.org/D16042 llvm-svn: 257463
* Explicitly enable OBJECT library "target".Axel Naumann2016-01-121-2/+4
| | | | | | | | | | | | | With this, one can build a lib from the objects of other libs: set(SOURCES $<TARGET_OBJECTS:obj.clingInterpreter> $<TARGET_OBJECTS:obj.clingMetaProcessor> $<TARGET_OBJECTS:obj.clingUtils> ) Reviewed by Chris Bieneman - thanks! llvm-svn: 257459
* [Orc] Comment out debugging output in OrcRemoteTargetClient::reserveMem to seeLang Hames2016-01-121-13/+13
| | | | | | | whether this affects the GCC 4.7 ICE on http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75 . llvm-svn: 257458
* Revert r257003Andrew Wilkins2016-01-126-103/+50
| | | | | | | | This revision breaks llvm-config if you set BUILD_SHARED_LIBS=on in a CMake build. Backing out until the fix is ready to land. llvm-svn: 257457
* [ORC] Remove extraneous '&'.Lang Hames2016-01-121-1/+1
| | | | llvm-svn: 257455
* [ORC] Replace some more 'auto' uses with std::error_code.Lang Hames2016-01-121-4/+8
| | | | | | | One of the GCC 4.7 bots doesn't seem to like auto, and is currently suffering from an ICE. I'm hoping this will help. llvm-svn: 257454
* [Orc] Add overloads of RPC::handle and RPC::expect that take member functions asLang Hames2016-01-122-167/+139
| | | | | | | | | | | | | handlers. It is expected that RPC handlers will usually be member functions. Accepting them directly in handle and expect allows for the remove of a lot of lambdas an explicit error variables. This patch also uses this new feature to substantially tidy up the OrcRemoteTargetServer class. llvm-svn: 257452
* LoopUnroll: Move the actual unrolling logic to a standalone function. NFCJustin Bogner2016-01-121-86/+95
| | | | | | | This is pure code motion - break the actual work out of runOnLoop into a reusable standalone function. llvm-svn: 257445
* [WebAssembly] Implement a prototype instruction encoder and disassembler.Dan Gohman2016-01-127-24/+231
| | | | | | | This is using an extremely simple temporary made-up binary format, not the official binary format (which isn't defined yet). llvm-svn: 257440
* [WebAssembly] Register the MC subtarget info.Dan Gohman2016-01-121-0/+8
| | | | llvm-svn: 257439
* [WebAssembly] Define OperandTypes for decoding immediate values.Dan Gohman2016-01-122-13/+33
| | | | llvm-svn: 257438
* [WebAssembly] Define a custom segment type for function definitions.Dan Gohman2016-01-121-1/+4
| | | | | | | | Since function definitions are not loaded into the address space, PT_LOAD is inappropriate. PT_WEBASSEMBLY_FUNCTIONS is used to identify where the function definitions are so that they can be processed at program startup time. llvm-svn: 257436
* [libFuzzer] when a new unit is discovered using a dictionary, print all used ↵Kostya Serebryany2016-01-124-30/+35
| | | | | | dictionary entries llvm-svn: 257435
* [libFuzzer] add various debug prints. Also don't mutate based on a cmp trace ↵Kostya Serebryany2016-01-121-5/+28
| | | | | | like (a eq a) or (a neq a) llvm-svn: 257434
* [WebAssembly] Use TSFlags instead of keeping a list of special-case opcodes.Dan Gohman2016-01-124-15/+54
| | | | llvm-svn: 257433
* OrcRemoteTargetServer.h: Suppress a warning. [-Wunused-variable]NAKAMURA Takumi2016-01-121-0/+1
| | | | | FIXME: It may return ErrorOr. llvm-svn: 257431
* lli: Fix warnings. [-Wsign-compare]NAKAMURA Takumi2016-01-121-2/+2
| | | | llvm-svn: 257430
* CXX_FAST_TLS calling convention: performance improvement for x86-64.Manman Ren2016-01-128-43/+117
| | | | | | | This is the same change on x86-64 as r255821 on AArch64. rdar://9001553 llvm-svn: 257428
OpenPOWER on IntegriCloud