Commit Graph

153 Commits

Author SHA1 Message Date
Jeffrey Yasskin
f073920691 Try r96559 for the third time. This time the shared library is only built if
--enable-shared is passed to configure.

llvm-svn: 97119
2010-02-25 06:34:33 +00:00
Jeffrey Yasskin
82c2f2fd24 Roll back r96959 again.
llvm-svn: 96981
2010-02-23 20:53:37 +00:00
Jeffrey Yasskin
e653785a3d Roll r96559 forward again, adding libLLVM-2.7svn.so to LLVM. This links 3 of
the examples shared to make sure the shared library keeps working.

llvm-svn: 96959
2010-02-23 18:10:07 +00:00
Daniel Dunbar
93911572ff Eliminate llvmgcc_version testing variable.
llvm-svn: 96908
2010-02-23 07:56:28 +00:00
Daniel Dunbar
cb977c7241 Kill unused llvmgccmajvers testing variable.
llvm-svn: 96906
2010-02-23 07:56:18 +00:00
Jeffrey Yasskin
e4b750f830 Roll back the shared library, r96559. It broke two darwins and arm, mysteriously.
llvm-svn: 96569
2010-02-18 04:43:02 +00:00
Jeffrey Yasskin
64b33dd9b7 Add a shared library for LLVM, named libLLVM2.7svn.(so|dylib), and add an
--enable-shared configure flag to have the tools linked shared. (2.7svn is just
$(LLVMVersion) so it'll change to "2.7" in the release.)  Always link the
example programs shared to test that the shared library keeps working.

On my mac laptop, Debug libLLVM2.7svn.dylib is 39MB, and opt (for example) is
16M static vs 440K shared.

Two things are less than ideal here:
1) The library doesn't include any version information. Since we expect to break
the ABI with every release, this shouldn't be much of a problem. If we do
release a compatible 2.7.1, we may be able to hack its library to work with
binaries compiled against 2.7.0, or we can just ask them to recompile. I'm
hoping to get a real packaging expert to look at this for the 2.8 release.
2) llvm-config doesn't yet have an option to print link options for the shared
library. I'll add this as a subsequent patch.

llvm-svn: 96559
2010-02-18 02:36:02 +00:00
Jeffrey Yasskin
9f05d972b7 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.

llvm-svn: 88994
2009-11-16 23:32:30 +00:00
Jeffrey Yasskin
0f846dbb3e 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!

llvm-svn: 88984
2009-11-16 22:41:33 +00:00
Daniel Dunbar
274f1953cd Two small fixes for site.exp for cmake.
llvm-svn: 86453
2009-11-08 09:29:52 +00:00
Daniel Dunbar
bbee468b71 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.

llvm-svn: 86452
2009-11-08 09:08:00 +00:00
Daniel Dunbar
ecd03574d6 Switch to using 'lit.site.cfg.in' for the site config template for Unit tests,
and generate it for CMake builds as well.

llvm-svn: 86451
2009-11-08 09:07:51 +00:00
Edward O'Callaghan
43d45b084e Fix gmake check for AuroraUX triple.
llvm-svn: 85088
2009-10-26 02:37:56 +00:00
Torok Edwin
4480acda62 Fix make rule when objdir is inside srcdir.
llvm-svn: 83243
2009-10-02 09:30:03 +00:00
Daniel Dunbar
e338cab441 Generate lit.site.cfg from a .in file, as clang does.
llvm-svn: 82533
2009-09-22 07:38:33 +00:00
Daniel Dunbar
2974b9671a Teach 'make check-all' to build the site configuration for clang, if it is in tree.
llvm-svn: 82400
2009-09-20 19:04:28 +00:00
Daniel Dunbar
4364c48cdb Add 'make check-all', which runs the LLVM tests along with the clang tests if
its in the standard location.

llvm-svn: 82374
2009-09-20 06:17:21 +00:00
Daniel Dunbar
c98a9cbdc8 Add a VALGRIND_EXTRA_ARGS makefile variable, with the obvious semantics.
llvm-svn: 81764
2009-09-14 15:27:43 +00:00
Daniel Dunbar
d715512750 Teach 'make check-lit' to run unittests.
llvm-svn: 81753
2009-09-14 02:39:01 +00:00
Daniel Dunbar
42e63360c7 Add LLVMGCCBINDIR to path, since LLVMC expects to find llvm-gcc in the path.
llvm-svn: 81669
2009-09-13 02:45:57 +00:00
Daniel Dunbar
f2e6a64c07 Switch Ocaml to use llvm_supports_binding.
llvm-svn: 81665
2009-09-13 01:41:47 +00:00
Daniel Dunbar
1f8b4b4a4e tests: Add llvm_supports_binding predicate.
llvm-svn: 81664
2009-09-13 01:41:18 +00:00
Daniel Dunbar
b15a757410 Remove prcontext.
llvm-svn: 81427
2009-09-10 04:56:59 +00:00
Daniel Dunbar
1d03c5c8a7 Add 'lit' support for llvm tests.
- This adds 'make check-lit' from the top-level Makefile.

llvm-svn: 81191
2009-09-08 05:31:44 +00:00
Erick Tryzelaar
1ea899cc86 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.

llvm-svn: 80968
2009-09-03 23:27:31 +00:00
Anton Korobeynikov
c9d9a008b5 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!

llvm-svn: 79296
2009-08-18 00:40:33 +00:00
Erick Tryzelaar
94dcf2f15d Fix ocaml "make check" tests, that wasn't finding the proper c++ compiler.
llvm-svn: 78592
2009-08-10 19:45:05 +00:00
Daniel Dunbar
c4efea5c56 Avoid a problem with ulimit on Solaris & friends, patch by Edward O'Callaghan!
llvm-svn: 77767
2009-08-01 03:37:54 +00:00
Bob Wilson
2a2501eca4 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.

llvm-svn: 76658
2009-07-21 21:56:46 +00:00
Shantonu Sen
eb968301d7 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.

llvm-svn: 74271
2009-06-26 05:44:53 +00:00
Dan Gohman
4523a11557 Add more ulimit limits, to catch more kinds of runaway behavior.
llvm-svn: 69847
2009-04-23 00:28:31 +00:00
Evan Cheng
76e1be357c Re-commit r67334 and r67349 with fix.
llvm-svn: 67451
2009-03-21 18:12:24 +00:00
Nick Lewycky
0561fdaaf7 Revert r67334 and r37349 which break "make check" on Linux.
llvm-svn: 67368
2009-03-20 07:56:31 +00:00
Evan Cheng
d331946d5b 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).
llvm-svn: 67334
2009-03-19 20:27:23 +00:00
Mikhail Glushenkov
5dadfaa7a0 Trailing whitespace.
llvm-svn: 66269
2009-03-06 12:25:56 +00:00
Chris Lattner
1f9a1fc2dd 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.

llvm-svn: 65564
2009-02-26 19:19:26 +00:00
Devang Patel
32a1b0f0e6 Run dsymutil on darwin, when it is expected, before running gdb test.
llvm-svn: 63548
2009-02-02 21:09:36 +00:00
Misha Brukman
361188d5bc * Quoted the executable 'runtest' to emphasize the binary needed;
otherwise, some unlucky souls start looking for a 'dejagnu' binary...
* Properly capitalized LLVM.

llvm-svn: 61546
2009-01-01 20:26:05 +00:00
Misha Brukman
d7b9e41922 Removed extra spaces.
llvm-svn: 61527
2008-12-31 17:38:27 +00:00
Torok Edwin
19a669f11a Fix make check on Solaris 10/x86: the default grep is not GNU grep, same for as.
llvm-svn: 57912
2008-10-21 17:21:32 +00:00
Nuno Lopes
7127e22321 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

llvm-svn: 57245
2008-10-07 14:48:14 +00:00
Devang Patel
fed5cd5fe7 Add EXTRA_OPTIONS on the llvmgxx command line.
llvm-svn: 50217
2008-04-24 17:59:03 +00:00
Devang Patel
7ff3d5b65b Add EXTRA_OPTIONS on the llvmgcc command line.
llvm-svn: 50216
2008-04-24 17:54:25 +00:00
Tanya Lattner
240dd2a657 Do not pass -g flag when compiling tests, so remove the C.Flags. This only happens if you have a debug build of llvm.
llvm-svn: 48498
2008-03-18 19:59:04 +00:00
Chris Lattner
ee2fc96a32 Fix a typo
llvm-svn: 48133
2008-03-10 06:49:40 +00:00
Gabor Greif
eeb043a390 unbreak check-one
by supplying a dummy
"verbose" procedure

llvm-svn: 47603
2008-02-26 13:27:49 +00:00
Gabor Greif
900b81cc22 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

llvm-svn: 47602
2008-02-26 12:08:55 +00:00
Chris Lattner
6aece93d5c remove attributions from the rest of the llvm makefiles.
llvm-svn: 45416
2007-12-29 20:11:13 +00:00
Gordon Henriksen
7e22335299 Add explicit --enable-bindings option to configure.
llvm-svn: 42526
2007-10-02 09:50:18 +00:00
Gordon Henriksen
a8db66a37a (no commit message)
llvm-svn: 42090
2007-09-18 12:26:17 +00:00