Commit Graph

146 Commits

Author SHA1 Message Date
Jeffrey Yasskin
feada9462b Revert the test from r88984. It relies on being able to mmap 16GB of
address space (though it only uses a small fraction of that), and the
buildbots disallow that.

Also add a comment to the Makefile's ulimit line warning future
developers that changing it won't work.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88994 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16 23:32:30 +00:00
Jeffrey Yasskin
d1ba06bf13 Make X86-64 in the Large model always emit 64-bit calls.
The large code model is documented at
http://www.x86-64.org/documentation/abi.pdf and says that calls should
assume their target doesn't live within the 32-bit pc-relative offset
that fits in the call instruction.

To do this, we turn off the global-address->target-global-address
conversion in X86TargetLowering::LowerCall(). The first attempt at
this broke the lazy JIT because it can separate the movabs(imm->reg)
from the actual call instruction. The lazy JIT receives the address of
the movabs as a relocation and needs to record the return address from
the call; and then when that call happens, it needs to patch the
movabs with the newly-compiled target. We could thread the call
instruction into the relocation and record the movabs<->call mapping
explicitly, but that seems to require at least as much new
complication in the code generator as this change.

To fix this, we make lazy functions _always_ go through a call
stub. You'd think we'd only have to force lazy calls through a stub on
difficult platforms, but that turns out to break indirect calls
through a function pointer. The right fix for that is to distinguish
between calls and address-of operations on uncompiled functions, but
that's complex enough to leave for someone else to do.

Another attempt at this defined a new CALL64i pseudo-instruction,
which expanded to a 2-instruction sequence in the assembly output and
was special-cased in the X86CodeEmitter's emitInstruction()
function. That broke indirect calls in the same way as above.

This patch also removes a hack forcing Darwin to the small code model.
Without far-call-stubs, the small code model requires things of the
JITMemoryManager that the DefaultJITMemoryManager can't provide.

Thanks to echristo for lots of testing!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16 22:41:33 +00:00
Daniel Dunbar
4080d10b4b Two small fixes for site.exp for cmake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86453 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08 09:29:52 +00:00
Daniel Dunbar
5ed7be1a40 Derive the right paths to use during testing instead of passing it in via make.
Also, fix a few other details of the cmake test target and rename it to
'check'. CMake tests now work for the most part, but there are a handful of
failures left due to missing site.exp bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86452 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08 09:08:00 +00:00
Daniel Dunbar
fb4fb6ddb0 Switch to using 'lit.site.cfg.in' for the site config template for Unit tests,
and generate it for CMake builds as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86451 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08 09:07:51 +00:00
Edward O'Callaghan
7e43439e81 Fix gmake check for AuroraUX triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85088 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26 02:37:56 +00:00
Torok Edwin
e1b691f208 Fix make rule when objdir is inside srcdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83243 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02 09:30:03 +00:00
Daniel Dunbar
fb76ffbaeb Generate lit.site.cfg from a .in file, as clang does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82533 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22 07:38:33 +00:00
Daniel Dunbar
2891dbba91 Teach 'make check-all' to build the site configuration for clang, if it is in tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82400 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 19:04:28 +00:00
Daniel Dunbar
3418579046 Add 'make check-all', which runs the LLVM tests along with the clang tests if
its in the standard location.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82374 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-20 06:17:21 +00:00
Daniel Dunbar
3a9719a3b9 Add a VALGRIND_EXTRA_ARGS makefile variable, with the obvious semantics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81764 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 15:27:43 +00:00
Daniel Dunbar
db5fe936db Teach 'make check-lit' to run unittests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14 02:39:01 +00:00
Daniel Dunbar
8bb233b6b7 Add LLVMGCCBINDIR to path, since LLVMC expects to find llvm-gcc in the path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81669 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 02:45:57 +00:00
Daniel Dunbar
0b88ed9dec Switch Ocaml to use llvm_supports_binding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81665 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 01:41:47 +00:00
Daniel Dunbar
840a718105 tests: Add llvm_supports_binding predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81664 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-13 01:41:18 +00:00
Daniel Dunbar
f3e2d80770 Remove prcontext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81427 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 04:56:59 +00:00
Daniel Dunbar
70a3b77df8 Add 'lit' support for llvm tests.
- This adds 'make check-lit' from the top-level Makefile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81191 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-08 05:31:44 +00:00
Erick Tryzelaar
b405bbe664 Replace ocamlc tests with ocamlopt tests since they're less noisy.
There's a bug with ocamlc that uses "char*" instead of "const char*" for
global string variables. This causes g++ to be very noisy when linking
ocamlc programs. That's why the ocaml test used to cat to /dev/null.
ocamlopt doesn't have this problem, so we can get rid of the >/dev/null,
which may obscure some problems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80968 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 23:27:31 +00:00
Anton Korobeynikov
e55db74152 The attached patches attempt to fix cross builds. For example, if you
try to use i686-darwin to build for arm-eabi, you'll quickly run into
several false assumptions that the target OS must be the same as the
host OS. These patches split $(OS) into $(HOST_OS) and $(TARGET_OS) to
help builds like "make check" and the test-suite able to cross
compile. Along the way a target of *-unknown-eabi is defined as
"Freestanding" so that TARGET_OS checks have something to work with.

Patch by Sandeep Patel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79296 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-18 00:40:33 +00:00
Erick Tryzelaar
1afd3e67d1 Fix ocaml "make check" tests, that wasn't finding the proper c++ compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-10 19:45:05 +00:00
Daniel Dunbar
54f9759404 Avoid a problem with ulimit on Solaris & friends, patch by Edward O'Callaghan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01 03:37:54 +00:00
Bob Wilson
b2f8806fdf Fix ocaml tests for 64-bit MacOS systems. LLVM is currently built
as 32-bit code by default, and if gcc defaults to 64-bit code then ocamlc
requires a -cc "gcc -arch i386" option.  We were hardcoding -cc g++
and throwing away any other compiler options that were determined when
ocamlc was configured and built.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76658 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-21 21:56:46 +00:00
Shantonu Sen
1b6d3daa59 Clarify how to configure llvm-gcc-4.2 for use with
test suite. Remove documentation for --with-f2c, which
is no longer supported. Remove information about obtaining
tcl/expect, which ship with Mac OS X by default since
10.4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74271 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-26 05:44:53 +00:00
Dan Gohman
ab192b71a6 Add more ulimit limits, to catch more kinds of runaway behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-23 00:28:31 +00:00
Evan Cheng
802cd84eb4 Re-commit r67334 and r67349 with fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67451 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-21 18:12:24 +00:00
Nick Lewycky
faf880fd5d Revert r67334 and r37349 which break "make check" on Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67368 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-20 07:56:31 +00:00
Evan Cheng
817046e1f1 More makefile changes to allow dejagnu tests to pass when system tools default to a different target from the llvm configuration (e.g. 64-bit gcc and 32-bit llvm).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-19 20:27:23 +00:00
Mikhail Glushenkov
38ead32c95 Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66269 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-06 12:25:56 +00:00
Chris Lattner
cd45eaa80a make sure that make fully evaluates variables when determining how compile_c and
friends should work.  This fixes 2006-11-30-Pubnames.cpp and friends on darwin
with the new -mmacosx-version-min change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26 19:19:26 +00:00
Devang Patel
6748f044b2 Run dsymutil on darwin, when it is expected, before running gdb test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-02 21:09:36 +00:00
Misha Brukman
33d0a03478 * Quoted the executable 'runtest' to emphasize the binary needed;
otherwise, some unlucky souls start looking for a 'dejagnu' binary...
* Properly capitalized LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61546 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-01 20:26:05 +00:00
Misha Brukman
5eb009af67 Removed extra spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61527 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31 17:38:27 +00:00
Torok Edwin
237033e6ac Fix make check on Solaris 10/x86: the default grep is not GNU grep, same for as.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57912 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-21 17:21:32 +00:00
Nuno Lopes
2bdc07b398 add support for running the test suite with valgrind. to run it just type 'make VG=1', as in clang
beware of the 42000 leaks reported by valgrind in the Constant.cpp + Type.cpp files. it needs fixing IMHO

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57245 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-07 14:48:14 +00:00
Devang Patel
ef89bbb436 Add EXTRA_OPTIONS on the llvmgxx command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50217 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-24 17:59:03 +00:00
Devang Patel
00dd691e75 Add EXTRA_OPTIONS on the llvmgcc command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50216 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-24 17:54:25 +00:00
Tanya Lattner
856ce2da14 Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48498 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-18 19:59:04 +00:00
Chris Lattner
27137a5e34 Fix a typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48133 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10 06:49:40 +00:00
Gabor Greif
1514010270 unbreak check-one
by supplying a dummy
"verbose" procedure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47603 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-26 13:27:49 +00:00
Gabor Greif
684ed3d987 While hunting for two hanging tests,
(on solaris10, which are:
  CodeGen/PowerPC/frounds.ll
  Transforms/InstCombine/2008-02-23-MulSub.ll)

I needed a tool to figure out which one is the guilty.

To this end I have added a verbosity
option to the test/Makefile.

It can be invoked thus:

gmake check TESTSUITE=CodeGen/PowerPC VERBOSE="-v -v"

(The number of "-v"s specifies the verbosity level.
 Instead of "-v" other aliases can be specified,
 please consult the dejagnu docs for info.)

At level >= 2 following line is logged for each
test, before running it:

ABOUT TO RUN: <test>.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47602 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-26 12:08:55 +00:00
Chris Lattner
57360d1f1c remove attributions from the rest of the llvm makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45416 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-29 20:11:13 +00:00
Gordon Henriksen
6530e9d8e6 Add explicit --enable-bindings option to configure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42526 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-02 09:50:18 +00:00
Gordon Henriksen
0908d49c22 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42090 91177308-0d34-0410-b5e6-96231b3b80d8 2007-09-18 12:26:17 +00:00
Reid Spencer
e41f23f93a For PR1411:
Don't try to use {} bracketing when setting a variable in site.exp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36985 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 06:47:16 +00:00
Reid Spencer
51162baae1 Pass the LLVMGCC_LANGS variable through to Tcl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 21:43:18 +00:00
Reid Spencer
e5190d2851 Add the TARGETS_TO_BUILD variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36313 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 20:39:26 +00:00
Duncan Sands
64609d341e Look for site.exp in the build directory, not the source directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36138 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 16:45:12 +00:00
Reid Spencer
470f260577 We don't need the path to be set for llvmgcc/llvmgxx any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36078 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 19:27:27 +00:00
Reid Spencer
42f98e54d1 Echo command lines only if the user wants them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36050 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 06:22:48 +00:00
Reid Spencer
9df5561a95 Add a new testing target: check-one. It is used like this:
make check-one TESTONE=test/path/to/test.ll

This runs a single check in exactly the same way that dejagnu runs it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36049 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-15 06:18:50 +00:00