summaryrefslogtreecommitdiffstats
path: root/llvm/test/ExecutionEngine
Commit message (Collapse)AuthorAgeFilesLines
...
* [MCJIT] Refactor and add stub inspection to the RuntimeDyldChecker framework.Lang Hames2014-07-221-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces a 'stub_addr' builtin that can be used to find the address of the stub for a given (<file>, <section>, <symbol>) tuple. This address can be used both to verify the contents of stubs (by loading from the returned address) and to verify references to stubs (by comparing against the returned address). Example (1) - Verifying stub contents: Load 8 bytes (assuming a 64-bit target) from the stub for 'x' in the __text section of f.o, and compare that value against the addres of 'x'. # rtdyld-check: *{8}(stub_addr(f.o, __text, x) = x Example (2) - Verifying references to stubs: Decode the immediate of the instruction at label 'l', and verify that it's equal to the offset from the next instruction's PC to the stub for 'y' in the __text section of f.o (i.e. it's the correct PC-rel difference). # rtdyld-check: decode_operand(l, 4) = stub_addr(f.o, __text, y) - next_pc(l) l: movq y@GOTPCREL(%rip), %rax Since stub inspection requires cooperation with RuntimeDyldImpl this patch pimpl-ifies RuntimeDyldChecker. Its implementation is moved in to a new class, RuntimeDyldCheckerImpl, that has access to the definition of RuntimeDyldImpl. llvm-svn: 213698
* [RuntimeDyld][MachO][AArch64] Add a helper function for encoding addends in ↵Juergen Ributzka2014-07-222-0/+57
| | | | | | | | | | | | | instructions. Factor out the addend encoding into a helper function and simplify the processRelocationRef. Also add a few simple rtdyld tests. More tests to come once GOTs can be tested too. Related to <rdar://problem/17768539> llvm-svn: 213689
* [RuntimeDyld] Replace a crufty old ARM RuntimeDyld test with a new one that usesLang Hames2014-07-104-1/+30
| | | | | | | | | RuntimeDyldChecker. This allows us to remove one of the six remaining object files in the LLVM source tree. llvm-svn: 212780
* Fix this test to not write to the source tree, and instead to write toChandler Carruth2014-06-281-3/+3
| | | | | | | a temporary file. This fixes the test in cases where the source tree is mounted read-only. llvm-svn: 211975
* [RuntimeDyld] Make sure that RuntimeDyld regression tests only run for targetsLang Hames2014-06-272-0/+3
| | | | | | | | | that have been enabled. Without this, testers will fail when llvm-rtdyld is invoked with triples for unsupported targets. llvm-svn: 211969
* [RuntimeDyld] Add a framework for testing relocation logic in RuntimeDyld.Lang Hames2014-06-271-0/+32
| | | | | | | | | | | | | | | | | | | | This patch adds a "-verify" mode to the llvm-rtdyld utility. In verify mode, llvm-rtdyld will test supplied expressions against the linked program images that it creates in memory. This scheme can be used to verify the correctness of the relocation logic applied by RuntimeDyld. The expressions to test will be read out of files passed via the -check option (there may be more than one of these). Expressions to check are extracted from lines of the form: # rtdyld-check: <expression> This system is designed to fit the llvm-lit regression test workflow. It is format and target agnostic, and supports verification of images linked for remote targets. The expression language is defined in llvm/include/llvm/RuntimeDyldChecker.h . Examples can be found in test/ExecutionEngine/RuntimeDyld. llvm-svn: 211956
* [RuntimeDyld] Support more PPC64 relocationsUlrich Weigand2014-06-201-1/+1
| | | | | | | | | | This adds support for several missing PPC64 relocations in the straight-forward manner to RuntimeDyldELF.cpp. Note that this actually fixes a failure of a large-model test case on PowerPC, allowing the XFAIL to be removed. llvm-svn: 211382
* mark the old jit tests as unsupported for powerpc64 (for cmake)Will Schmidt2014-06-171-0/+3
| | | | | | | | mark the old JIT tests as unsupported for powerpc64 - CMake style. This follows the style used for hexagon/arm64/aarch64. The equivalent tests still run under the supported MCJIT/* llvm-svn: 211111
* Reduce verbiage of lit.local.cfg filesAlp Toker2014-06-091-1/+1
| | | | | | We can just split targets_to_build in one place and make it immutable. llvm-svn: 210496
* Use AArch64 instead of now removed ARM64 in test configsAlexey Samsonov2014-06-051-1/+1
| | | | llvm-svn: 210229
* Fix testers by removing dubious testcase for r209154.Lang Hames2014-05-192-1/+0
| | | | | | | | It turns out that not all the world is x86-64. Who knew? I'll get to work on a more appropriate test case for this patch. llvm-svn: 209155
* [RuntimeDyld] Fix x86-64 MachO GOT relocation handling.Lang Hames2014-05-192-0/+1
| | | | | | | | | | | For GOT relocations the addend should modify the offset to the GOT entry, not the value of the entry itself. Teach RuntimeDyldMachO to do The Right Thing here. Fixes <rdar://problem/16961886>. llvm-svn: 209154
* [ARM64] Disable regression tests for the old JIT.Tilmann Scheller2014-04-291-3/+4
| | | | | | Since the ARM64 backend doesn't implement support for the old JIT those tests are failing when the regression tests are run on an AArch64 host. llvm-svn: 207530
* Ignore old JIT tests in AARch64 - CMake styleRenato Golin2014-02-251-0/+4
| | | | llvm-svn: 202126
* PC-rel implemented in AArch64, test now passRenato Golin2014-02-121-1/+1
| | | | llvm-svn: 201243
* mips: XFAIL non-extern-addend-smallcodemodel testPetar Jovanovic2014-02-051-1/+1
| | | | | | | Small code model (and default reloc model) set Reloc::PIC_ in this test, and PIC is not yet supported in MCJIT for MIPS. llvm-svn: 200852
* Split out small-code-model MCJIT testcase in order to xfail for AArch64, whereLang Hames2014-01-312-1/+25
| | | | | | PC-rel relocations aren't yet fully implemented. llvm-svn: 200592
* Add support for PC-relative non-extern relocations to RuntimeDyldMachO.Lang Hames2014-01-291-6/+16
| | | | | | | | | Also replaces testcase for r180790 (support for absolute non-externs relocs) with a more robust version. <rdar://problem/15864721> llvm-svn: 200404
* Enable EHABI by defaultRenato Golin2014-01-299-13/+12
| | | | | | | | | | | | | | | | | | | | | | After all hard work to implement the EHABI and with the test-suite passing, it's time to turn it on by default and allow users to disable it as a work-around while we fix the eventual bugs that show up. This commit also remove the -arm-enable-ehabi-descriptors, since we want the tables to be printed every time the EHABI is turned on for non-Darwin ARM targets. Although MCJIT EHABI is not working yet (needs linking with the right libraries), this commit also fixes some relocations on MCJIT regarding the EH tables/lib calls, and update some tests to avoid using EH tables when none are needed. The EH tests in the test-suite that were previously disabled on ARM now pass with these changes, so a follow-up commit on the test-suite will re-enable them. llvm-svn: 200388
* Re-enabling MCJIT tests on ARMRenato Golin2014-01-251-2/+2
| | | | | | | | | After several refactorings on the MCJIT remote communication, things are finally looking good on Clang-compiled LLVM regarding MCJIT remote tests, so I'm re-enabling them to see how the self-hosting buildbot behaves over a longer period. llvm-svn: 200102
* Eliminate inappropriate use of FindProgramByName() from lliAlp Toker2014-01-2211-11/+11
| | | | llvm-svn: 199835
* Revert 199262 - MCJIT remote still failing on ARMRenato Golin2014-01-151-2/+2
| | | | | | | | Disabling remote MCJIT tests on ARM again, as they're still failing when self-hosting on ARM, despite all my tests. At least now we have more info on what message it's breaking and what is going on. Investigating. llvm-svn: 199310
* Re-disable MCJIT remote tests on ARMRenato Golin2014-01-151-0/+5
| | | | llvm-svn: 199309
* Re-enable remote MCJIT tests on ARMv7Renato Golin2014-01-141-5/+0
| | | | llvm-svn: 199262
* llvm/test/ExecutionEngine/MCJIT/load-object-a.ll: Put together rm(1) and ↵NAKAMURA Takumi2014-01-131-7/+2
| | | | | | mkdir(1) at the top. llvm-svn: 199077
* llvm/test/ExecutionEngine/MCJIT/load-object-a.ll: Remove "REQUIRES:shell". ↵NAKAMURA Takumi2014-01-101-2/+0
| | | | | | This doesn't depend on shell's behavior. llvm-svn: 198931
* llvm/test/ExecutionEngine/MCJIT/lit.local.cfg: Add "AMD64" in the host_arch ↵NAKAMURA Takumi2014-01-101-1/+1
| | | | | | | list. FIXME: We should not take CMake's ${CMAKE_SYSTEM_PROCESSOR}... llvm-svn: 198930
* llvm/test/ExecutionEngine/MCJIT/load-object-a.ll: Fix not to use %t.cachedir/%p.NAKAMURA Takumi2014-01-101-4/+13
| | | | | | %p is like X:\foo\bar. llvm-svn: 198926
* Add an "-object-cache-dir=<string>" option to LLI. This option specifies theLang Hames2014-01-091-11/+6
| | | | | | | | | | | root path to which object files managed by the LLIObjectCache instance should be written. This option defaults to "", in which case objects are cached in the same directory as the bitcode they are derived from. The load-object-a.ll test has been rewritten to use this option to support testing in environments where the test directory is not writable. llvm-svn: 198852
* Add missing test case for r198737.Lang Hames2014-01-081-0/+27
| | | | llvm-svn: 198772
* Remove empty MCJIT/load-object-a.ll since r196641.NAKAMURA Takumi2013-12-071-0/+0
| | | | llvm-svn: 196645
* Revert r196639 while I investigate a bot failure.Lang Hames2013-12-071-28/+0
| | | | llvm-svn: 196641
* Add support for archives and object file caching under MCJIT.Lang Hames2013-12-071-0/+28
| | | | | | Patch by Andy Kaylor, with minor edits to resolve merge conflicts. llvm-svn: 196639
* Fix lit config for disabled MCJIT tests on ARMRenato Golin2013-12-031-1/+7
| | | | | | | Separating permanent from temporary targets, added the bug that will fix the temporary (PR18057). llvm-svn: 196274
* Disable Remote MCJIT tests on ARMRenato Golin2013-12-031-2/+1
| | | | | | | | | | The communication protocol is unstable on ARM when compiled with Clang, which is disrupting the self-hosting buildbots that are going to be added this week. I'm working on a solution, but remote MCJIT is not high-priority for ARM at the moment, so it might take a while. llvm-svn: 196257
* [mips] Resolve relocation for the stubs in MCJIT when load address is knownPetar Jovanovic2013-11-197-14/+0
| | | | | | | | | | Instead of processing relocation for branch to stubs right away, emit a modified relocation and add it to queue to be resolved later when final load address is known. This resolves seven MIPS MCJIT issues that were caused by missing relocation fixups at the end. llvm-svn: 195157
* Add XFAIL:arm again on 4 MCJIT tests, since r194558. AArch64 has been left ↵NAKAMURA Takumi2013-11-134-4/+4
| | | | | | | | | | removed. They are failing on clang-native-arm-cortex-a9. Please tweak MCJIT/lit.local.cfg, if this didn't satisfy bots. llvm-svn: 194561
* Remove XFAIL:aarch64,arm from 4 tests in test/ExecutionEngine/MCJIT.NAKAMURA Takumi2013-11-134-4/+4
| | | | | | They are reported as XPASSing. llvm-svn: 194558
* [mips] XFAIL several MCJIT remote testsPetar Jovanovic2013-10-314-0/+8
| | | | | | | | Two of the tests are new test cases (cross-module-a.ll, multi-module-a.ll) not yet supported on MIPS, while XFAIL for the other two tests was accidentally removed in r193570 and this change reverts those lines. llvm-svn: 193781
* Adding a workaround for __main linking with remote lli and Cygwin/MinGWAndrew Kaylor2013-10-298-21/+3
| | | | llvm-svn: 193570
* Renaming MCJIT .ir files to .ll and moving them to InputsAndrew Kaylor2013-10-2816-9/+9
| | | | llvm-svn: 193562
* Standardizing lli's extra module command line optionAndrew Kaylor2013-10-289-9/+9
| | | | llvm-svn: 193544
* MCJIT-remote: __main should be resolved in child context.NAKAMURA Takumi2013-10-278-5/+24
| | | | | | | | | | | | | | | - Mark tests as XFAIL:cygming in test/ExecutionEngine/MCJIT/remote. Rather to suppress them, I'd like to leave them running as XFAIL. - Revert r193472. RecordMemoryManager no longer resolves __main on cygming. There are a couple of issues. - X86 Codegen emits "call __main" in @main for targeting cygming. It is useless in JIT. FYI, tests are passing when emitting __main is disabled. - Current remote JIT does not resolve any symbols in child context. FIXME: __main should be disabled, or remote JIT should resolve __main. llvm-svn: 193498
* Fix typo in test's XFAIL line. Patch by Dimitry Andric!Nick Lewycky2013-10-211-1/+1
| | | | llvm-svn: 193063
* Fixing problems in lli's RemoteMemoryManager.Andrew Kaylor2013-10-112-2/+4
| | | | | | | | This fixes a problem from a previous check-in where a return value was omitted. Previously the remote/stubs-remote.ll and remote/stubs-sm-pic.ll tests were reporting passes, but they should have been failing. Those tests attempt to link against an external symbol and remote symbol resolution is not supported. The old RemoteMemoryManager implementation resulted in local symbols being used for resolution and the child process crashed but the test didn't notice. With this check-in remote symbol resolution fails, and so the test (correctly) fails. llvm-svn: 192514
* Adding multiple object support to MCJIT EH frame handlingAndrew Kaylor2013-10-112-0/+65
| | | | llvm-svn: 192504
* Updating XFAILs for recent GOT testsAndrew Kaylor2013-10-054-0/+4
| | | | llvm-svn: 192022
* Adding tests for multiple GOTs with MCJITAndrew Kaylor2013-10-054-0/+44
| | | | llvm-svn: 192021
* Adding support and tests for multiple module handling in lliAndrew Kaylor2013-10-0410-0/+80
| | | | llvm-svn: 191938
* Adding out-of-process execution support to lli.Andrew Kaylor2013-10-027-7/+7
| | | | | | | | At this time only Unix-based systems are supported. Windows has stubs and should re-route to the simulated mode. Thanks to Sriram Murali for contributions to this patch. llvm-svn: 191843
OpenPOWER on IntegriCloud