Commit Graph

1307 Commits

Author SHA1 Message Date
Jeff Cohen ba1c0cd4e9 Correctly report version of GCC used.
llvm-svn: 35866
2007-04-10 19:13:43 +00:00
Reid Spencer e061303a9c Update for PathWithStatus
llvm-svn: 35745
2007-04-07 19:49:35 +00:00
Reid Spencer beeeeb1428 Terminate some lines that need to be.
llvm-svn: 35725
2007-04-07 05:20:07 +00:00
Reid Spencer 203524fe05 Reinstate the SVN capability without requiring Date::Parse. As before the
SVN Repository is only used if requested with -usesvn option otherwise it
uses CVS.

llvm-svn: 35721
2007-04-07 04:41:16 +00:00
Reid Spencer 12e2843475 Revert this until the Date::Parse module can be installed on the nightly
testers.

llvm-svn: 35657
2007-04-04 06:59:36 +00:00
Reid Spencer d0b2dbfa03 Prepare for Subversion migration by implementing a -usesvn to tell the
script to to check out llvm and llvm-test from Subversion instead of CVS.
Without this option the script will continue to check out from CVS. To
specify the Subversion URL, set the SVNURL environment variable or pass
-svnurl followed by the URL. For now, -svnurl will default to Reid's
temporary (read-only, daily snapshot) SVN server. Try it out if you like!

llvm-svn: 35621
2007-04-03 08:28:44 +00:00
Reid Spencer e67d0c226d For PR1297:
Implement code generation for overloaded intrinsic functions. The basic
difference is that "actual" argument types must be provided when
constructing intrinsic names and types. Also, for recognition, only the
prefix is examined. If it matches, the suffix is assumed to match. The
suffix is checked by the Verifier, however.

llvm-svn: 35539
2007-04-01 07:20:02 +00:00
Bill Wendling ce43379aac Add better support for keywords.
llvm-svn: 35386
2007-03-27 20:23:56 +00:00
Bill Wendling 98d2104c6f Add support for the v1i64 type. This makes better code for this:
#include <mmintrin.h>

extern __m64 C;

void baz(__v2si *A, __v2si *B)
{
  *A = C;
  _mm_empty();
}

We get this:

_baz:
        call "L1$pb"
"L1$pb":
        popl %eax
        movl L_C$non_lazy_ptr-"L1$pb"(%eax), %eax
        movq (%eax), %mm0
        movl 4(%esp), %eax
        movq %mm0, (%eax)
        emms
        ret

GCC gives us this:

_baz:
        pushl   %ebx
        call    L3
"L00000000001$pb":
L3:
        popl    %ebx
        subl    $8, %esp
        movl    L_C$non_lazy_ptr-"L00000000001$pb"(%ebx), %eax
        movl    (%eax), %edx
        movl    4(%eax), %ecx
        movl    16(%esp), %eax
        movl    %edx, (%eax)
        movl    %ecx, 4(%eax)
        emms
        addl    $8, %esp
        popl    %ebx
        ret

llvm-svn: 35351
2007-03-26 07:53:08 +00:00
Duncan Sands 14b191c687 The -funcresolve and -raise options no longer exist.
llvm-svn: 35272
2007-03-22 21:06:50 +00:00
Evan Cheng 9d7d130835 Recognize target instruction flag 'isReMaterializable'.
llvm-svn: 35159
2007-03-19 06:20:37 +00:00
Anton Korobeynikov ed4b303c10 Refactoring of formal parameter flags. Enable properly use of
zext/sext/aext stuff.

llvm-svn: 35008
2007-03-07 16:25:09 +00:00
Anton Korobeynikov e7ec3bc7bc Use new SDIselParamAttr enumeration. This removes "magick" constants
from formal attributes' flags processing.

llvm-svn: 34963
2007-03-06 08:12:33 +00:00
Chris Lattner 7fb0823a7b rename some CCActions
llvm-svn: 34724
2007-02-28 05:29:06 +00:00
Chris Lattner 22778a3d1c implement CCPromoteToType
llvm-svn: 34720
2007-02-28 04:43:48 +00:00
Chris Lattner cbebe4600f reapply
llvm-svn: 34697
2007-02-27 22:08:27 +00:00
Chris Lattner bf5f3945fd *** empty log message ***
llvm-svn: 34696
2007-02-27 22:05:51 +00:00
Evan Cheng 116ec30e4f Backing out
CodeGenTarget.cpp updated: 1.82 -> 1.83
Record.cpp updated: 1.55 -> 1.56
Record.h updated: 1.59 -> 1.60
TableGen.cpp updated: 1.47 -> 1.48
It's missing CallingConvEmitter.h

llvm-svn: 34693
2007-02-27 21:44:08 +00:00
Chris Lattner fa024e1ad1 initial support for calling convention generation, still unfinished.
llvm-svn: 34682
2007-02-27 20:43:37 +00:00
Chris Lattner 68a8bcce99 emit an enum value for the # of target registers.
llvm-svn: 34624
2007-02-26 03:34:38 +00:00
Chris Lattner 49e58cfe42 the lengths of the strings are known, just use memcmp
llvm-svn: 34321
2007-02-15 19:26:16 +00:00
Chris Lattner 1e92e06779 Implement Function::getIntrinsicID without it needing to call Value::getName,
which allocates a string.  This speeds up instcombine on 447.dealII by 5%.

llvm-svn: 34318
2007-02-15 19:17:16 +00:00
Reid Spencer 09575bac2e For PR1195:
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.

llvm-svn: 34300
2007-02-15 03:39:18 +00:00
Reid Spencer d84d35ba70 For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.

llvm-svn: 34293
2007-02-15 02:26:10 +00:00
Chris Lattner a673023852 remove obsolete path
llvm-svn: 34273
2007-02-14 07:39:35 +00:00
Jim Laskey 2682ea616f Automatically generating intrinsic declarations from Dan Gohman. Modified
to construct FunctionType in separate function, and, have getDeclaration
return a Function instead of a Constant.

llvm-svn: 34008
2007-02-07 20:38:26 +00:00
Reid Spencer 008e65ff96 Set the new NO_INSTALL flag for build-only tools.
llvm-svn: 33967
2007-02-06 18:51:28 +00:00
Jim Laskey 132fb185ee Error check and eliminate unnecessary value.
llvm-svn: 33966
2007-02-06 18:30:58 +00:00
Jim Laskey 207230b984 Regenerate.
llvm-svn: 33965
2007-02-06 18:20:07 +00:00
Jim Laskey a9e7064774 Deemed too cute to live.
llvm-svn: 33964
2007-02-06 18:19:44 +00:00
Jim Laskey f4163f9bbc Regenerate.
llvm-svn: 33963
2007-02-06 18:03:31 +00:00
Jim Laskey 5aed30d5cf Support var arg intrinsics.
llvm-svn: 33962
2007-02-06 18:02:54 +00:00
Reid Spencer c04536470a Use opt to generate the list of passes to run.
llvm-svn: 33903
2007-02-05 06:10:19 +00:00
Jim Laskey 73e79b5a43 Make the constant honest.
llvm-svn: 33557
2007-01-26 23:00:54 +00:00
Jim Laskey 214c582002 Files missing from LABEL check in.
llvm-svn: 33539
2007-01-26 17:29:20 +00:00
Chris Lattner 100602d756 Make tblgen error more useful. Patch by B. Scott Michel
llvm-svn: 33295
2007-01-17 07:45:12 +00:00
Reid Spencer c35fec9567 Fix this tool for use on Darwin which requires the file to come after the
commands. Linux is more forgiving.

Patch by Gordon Henriksen. Thanks, Gordon!

llvm-svn: 33285
2007-01-17 03:38:22 +00:00
Reid Spencer 7dac4c31a4 Join two lines that caused awk to squak on some platforms.
llvm-svn: 33274
2007-01-16 22:41:12 +00:00
Reid Spencer 7a9c62baa6 For PR1064:
Implement the arbitrary bit-width integer feature. The feature allows
integers of any bitwidth (up to 64) to be defined instead of just 1, 8,
16, 32, and 64 bit integers.

This change does several things:
1. Introduces a new Derived Type, IntegerType, to represent the number of
   bits in an integer. The Type classes SubclassData field is used to
   store the number of bits. This allows 2^23 bits in an integer type.
2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and
   64-bit integers. These are replaced with just IntegerType which is not
   a primitive any more.
3. Adjust the rest of LLVM to account for this change.

Note that while this incremental change lays the foundation for arbitrary
bit-width integers, LLVM has not yet been converted to actually deal with
them in any significant way. Most optimization passes, for example, will
still only deal with the byte-width integer types.  Future increments
will rectify this situation.

llvm-svn: 33113
2007-01-12 07:05:14 +00:00
Reid Spencer 81accb5f08 Put in some needed \ at the end of lines!!!
llvm-svn: 33070
2007-01-11 06:51:56 +00:00
Reid Spencer bc013ba367 For PR950:
Convert signed integer types to signless.

llvm-svn: 32786
2006-12-31 05:50:28 +00:00
Reid Spencer f5165ac0d1 Remove some clutter and make it keep going instead of stopping at the
first difference.

llvm-svn: 32645
2006-12-18 00:37:37 +00:00
Jim Laskey 3f7d047a14 Ignore entries with blank names.
llvm-svn: 32491
2006-12-12 20:55:58 +00:00
Jim Laskey 8171e58bd9 Rollback changes to take a different tack.
llvm-svn: 32488
2006-12-12 19:26:50 +00:00
Jim Laskey 7c3cab9ddc Honor the command line specification for machine type.
llvm-svn: 32483
2006-12-12 16:07:33 +00:00
Reid Spencer d436ea5cb4 Provide a script that can track down which optimization pass causes
different code to be produced between two llvm builds that differe slightly.
This is useful in tracking down mis-optimization bugs.

llvm-svn: 32435
2006-12-11 17:42:12 +00:00
Reid Spencer 68acb20000 Allow the input of the test program to be specified.
Don't generate the reference output for each comparison.

llvm-svn: 32395
2006-12-09 04:42:33 +00:00
Reid Spencer 5c09dd74b9 Add the -ldl library option.
llvm-svn: 32369
2006-12-08 18:58:38 +00:00
Bill Wendling 9bfb1e1f29 What should be the last unnecessary <iostream>s in the library.
llvm-svn: 32333
2006-12-07 22:21:48 +00:00
Evan Cheng 8e94078483 Match TargetInstrInfo changes.
llvm-svn: 32107
2006-12-01 22:57:41 +00:00
Reid Spencer 6984a15600 Only show the first few lines of difference.
llvm-svn: 31901
2006-11-25 04:07:06 +00:00
Reid Spencer 17782030cf Add an option to enable lli (interpreter mode) testing.
llvm-svn: 31899
2006-11-24 20:34:16 +00:00
Reid Spencer fff57ce9cd Stop early if there is no mis-optimization.
llvm-svn: 31893
2006-11-22 03:46:45 +00:00
Chris Lattner 55b8683d24 Fix PR1001, patch by Nikhil Patil!
llvm-svn: 31880
2006-11-20 18:54:33 +00:00
Reid Spencer 4924c53b5e Make the awk filter print out which files its eliminating.
llvm-svn: 31851
2006-11-18 18:30:18 +00:00
Reid Spencer 2ca613bcad This is a utility for preparing patches against LLVM. It runs cvs diff with
the correct options, places the patch content in order that makes sense for
review, and filters cruft out of the patch (like diffs in *.cvs files). It
produces both a NAME.patch.raw (unfiltered) and NAME.patch (filtered) file.

llvm-svn: 31850
2006-11-18 18:02:30 +00:00
Reid Spencer 170ff02764 Provide a list of gccld optimization switches.
llvm-svn: 31849
2006-11-18 17:14:09 +00:00
Evan Cheng 71adba6dce Add opcode to TargetInstrDescriptor.
llvm-svn: 31804
2006-11-17 01:46:27 +00:00
Reid Spencer b3030c42e0 Use a release version of bugpoint, if found. Include gccld passes.
llvm-svn: 31786
2006-11-16 18:32:47 +00:00
Chris Lattner 78a403f90e Remove the isTwoAddress property from the CodeGenInstruction class. It should
not be used for anything other than backwards compat constraint handling.

Add support for a new DisableEncoding property which contains a list of
registers that should not be encoded by the generated code emitter.  Convert
the codeemitter generator to use this, fixing some PPC JIT regressions.

llvm-svn: 31769
2006-11-15 23:23:02 +00:00
Chris Lattner c94f214d22 ADd support for adding constraints to suboperands
llvm-svn: 31748
2006-11-15 02:38:17 +00:00
Chris Lattner c75081b7a8 restore some 'magic' code that I removed: it is needed. Add comments explaining
why.

llvm-svn: 31743
2006-11-14 22:17:10 +00:00
Chris Lattner c5dd5b11a4 minimal hack to get patterns whose result type is iPTR to be selected.
llvm-svn: 31742
2006-11-14 21:50:27 +00:00
Chris Lattner 75165d07a0 remove some dead code
llvm-svn: 31740
2006-11-14 21:41:35 +00:00
Chris Lattner 7c9f48cefb Add support for nodes that return iPTR.
llvm-svn: 31739
2006-11-14 21:32:01 +00:00
Chris Lattner 110c777f2c changes to get ptr_rc to be accepted in patterns. This is needed for ppc preinc
stores.

llvm-svn: 31738
2006-11-14 21:18:40 +00:00
Chris Lattner f8c06b335d Fix a bug handling nodes with variable arguments. The code was fixed to assume
that there were two input operands before the variable operand portion.  This
*happened* to be true for all call instructions, which took a chain and a
destination, but was not true for the PPC BCTRL instruction, whose destination
is implicit.

Making this code more general allows elimination of the custom selection logic
for BCTRL.

llvm-svn: 31732
2006-11-14 18:41:38 +00:00
Reid Spencer cac60e8eb4 Add some output so the user is informed while they wait.
llvm-svn: 31700
2006-11-13 16:08:51 +00:00
Reid Spencer 2e80be8251 Add -lstdc++ to the link line for C++ programs.
llvm-svn: 31678
2006-11-11 10:22:48 +00:00
Chris Lattner ba7b3673f9 allow ptr_rc to explicitly appear in an instructions operand list, it doesn't
have to be a subpart of a complex operand.

llvm-svn: 31618
2006-11-10 02:01:40 +00:00
Evan Cheng 1698c2999c Remove M_2_ADDR_FLAG.
llvm-svn: 31583
2006-11-09 02:22:54 +00:00
Reid Spencer c6389c10cc Don't run bugpoint if we can't find a misoptimization.
llvm-svn: 31582
2006-11-09 01:47:04 +00:00
Reid Spencer 206d609cdd Print a usage message if too few arguments to program.
llvm-svn: 31581
2006-11-09 00:50:32 +00:00
Reid Spencer e73551303f Add a utility script to find a mis-optimization problem. This sometimes
helps when bugpoint can't find the problem directly because it needs the
set of optimizations that cause the program to fail.

llvm-svn: 31580
2006-11-09 00:26:17 +00:00
Evan Cheng 7120b9e9c7 Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD,
X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow
multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed
store).

llvm-svn: 31575
2006-11-08 23:01:03 +00:00
Evan Cheng d715a2cbfb Always pass the root node to ComplexPattern isel matching function.
llvm-svn: 31570
2006-11-08 20:31:10 +00:00
Chris Lattner 5d14eac21d emit TIED_TO correctly
llvm-svn: 31484
2006-11-07 01:27:55 +00:00
Chris Lattner f62138e792 Mark predicate operands as such in operand info.
llvm-svn: 31483
2006-11-06 23:53:31 +00:00
Chris Lattner 33f5a51020 simplify the way operand flags and constraints are handled, making it easier
to extend.

llvm-svn: 31481
2006-11-06 23:49:51 +00:00
Chris Lattner 8a9c91de33 recognize ppc's blr instruction as predicated
llvm-svn: 31480
2006-11-06 21:44:54 +00:00
Chris Lattner 698c900b0c regenerate
llvm-svn: 31472
2006-11-05 23:28:58 +00:00
Jeff Cohen 7d6f3db3e2 Unbreak VC++ build.
llvm-svn: 31464
2006-11-05 19:31:28 +00:00
Evan Cheng 3cb5bf721c Clean up some code.
llvm-svn: 31451
2006-11-04 09:40:23 +00:00
Chris Lattner ed07f23c52 Parse PredicateOperand's. When an instruction takes one, have the generated
isel fill in the instruction operands with the 'execute always' value
automatically.

llvm-svn: 31448
2006-11-04 05:12:02 +00:00
Chris Lattner 1faa9097c7 First steps to getting PredicateOperand's to work. This handles instruction
and pat pattern definitions.  Codegen is not right for them yet.

llvm-svn: 31444
2006-11-04 01:35:50 +00:00
Chris Lattner 7982de167f eliminate need for the NumMIOperands field in Operand.
llvm-svn: 31432
2006-11-03 23:45:17 +00:00
Reid Spencer 03c6038226 Remove an unused variable.
llvm-svn: 31403
2006-11-03 01:48:30 +00:00
Chris Lattner 16e05c378d silence warning
llvm-svn: 31402
2006-11-03 01:45:13 +00:00
Reid Spencer 5314f04de5 Don't write out variables that are never used.
llvm-svn: 31396
2006-11-03 01:28:12 +00:00
Chris Lattner 71f55131d4 silence warnings
llvm-svn: 31392
2006-11-03 01:11:05 +00:00
Reid Spencer 6152ad000c Revert last patch which causes tblgen to segfault (why, I'm not sure).
llvm-svn: 31383
2006-11-02 21:07:40 +00:00
Reid Spencer 2a82686563 For PR786:
Remove unused variables.

llvm-svn: 31381
2006-11-02 20:46:16 +00:00
Reid Spencer de46e48420 For PR786:
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.

llvm-svn: 31380
2006-11-02 20:25:50 +00:00
Evan Cheng 3557a39494 Tied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else throw an exception.
llvm-svn: 31361
2006-11-01 23:03:11 +00:00
Evan Cheng 23654935f4 Not meant to be checked in.
llvm-svn: 31334
2006-11-01 00:27:59 +00:00
Evan Cheng ac79c7c4c0 Add operand constraints to TargetInstrInfo.
llvm-svn: 31333
2006-11-01 00:27:05 +00:00
Reid Spencer ebd21a425a 80 cols fix.
llvm-svn: 31050
2006-10-19 15:24:04 +00:00
Evan Cheng a74965f15a Passing isel root and use operands to ComplexPattern functions, these should do the usual load folding checks as well.
llvm-svn: 30972
2006-10-16 06:33:44 +00:00
Evan Cheng cfb9526d61 When checking if a load can be folded, we check if there is any non-direct
way to reach the load via any nodes that would be folded. Start from the
root of the matched sub-tree.

llvm-svn: 30956
2006-10-14 08:30:15 +00:00
Evan Cheng 1d04dd3aac Really remove dead nodes from isel queue.
llvm-svn: 30923
2006-10-12 23:18:52 +00:00
Evan Cheng 8e770f5589 Use RemoveDeadNode to kill dead node.
llvm-svn: 30917
2006-10-12 20:35:19 +00:00
Evan Cheng d7125583f7 Prior load folding check on chain operand was too strict. It requires the
chain operand to point to the load being folded. Now we relax this, traversing
up the chain, if it doesn't reach the load, then it's ok. We will create a
TokenFactor (of all the chain operands and the load's chain) to capture all
the control flow dependencies.

llvm-svn: 30897
2006-10-12 02:08:53 +00:00
Evan Cheng 2022c79d7f Added properties such as SDNPHasChain to ComplexPattern.
llvm-svn: 30890
2006-10-11 21:02:01 +00:00
Chris Lattner c52dab5894 regenerate
llvm-svn: 30888
2006-10-11 18:13:09 +00:00
Chris Lattner 9d9de698b5 Add support for let expressions around an mdef. This implements a new part
of Regression/TableGen/MultiClass.td.

llvm-svn: 30887
2006-10-11 18:12:44 +00:00
Chris Lattner f405928e86 Special case tblgen generated code for patterns like (and X, 255) or (or X, 42).
The dag/inst combiners often 'simplify' the masked value based on whether
or not the bits are live or known zero/one.  This is good and dandy, but
often causes special case patterns to fail, such as alpha's CMPBGE pattern,
which looks like "(set GPRC:$RC, (setuge (and GPRC:$RA, 255), (and GPRC:$RB, 255)))".
Here the pattern for (and X, 255) should match actual dags like (and X, 254) if
the dag combiner proved that the missing bits are already zero (one for 'or').

For CodeGen/Alpha/cmpbge.ll:test2 for example, this results in:

        sll $16,1,$0
        cmpbge $0,$17,$0
        ret $31,($26),1

instead of:

        sll $16,1,$0
        and $0,254,$0
        and $17,255,$1
        cmpule $1,$0,$0
        ret $31,($26),1

... and requires no target-specific code.

llvm-svn: 30871
2006-10-11 04:05:55 +00:00
Chris Lattner 66fbbca1e7 Split some code out into a new method. The generated code is exactly
identical, this is just a refactoring.

llvm-svn: 30868
2006-10-11 03:35:34 +00:00
Evan Cheng 75a1b70da8 Predicate function on the node should be matched before its childrean' matching
code. This is especially important now matching ISD::LOAD also requires a
Predicate_Load call.

llvm-svn: 30845
2006-10-09 21:02:17 +00:00
Chris Lattner 560804cc50 regenerate
llvm-svn: 30799
2006-10-07 07:15:19 +00:00
Chris Lattner dfbda3598d Bugfix: this allows multiclasses to have default arguments.
llvm-svn: 30798
2006-10-07 07:14:48 +00:00
Chris Lattner 8111c59279 Fix more static dtor issues
llvm-svn: 30725
2006-10-04 21:52:35 +00:00
Jim Laskey 05a1947a31 Wrong directory.
llvm-svn: 30669
2006-09-29 17:31:45 +00:00
Jim Laskey 8f1510cfd3 Fix search file for -release.
llvm-svn: 30647
2006-09-28 18:45:11 +00:00
Jim Laskey 68722b7e08 Add support for -release-asserts.
llvm-svn: 30646
2006-09-28 17:49:20 +00:00
Chris Lattner 5d751b4a3a This:
AggregateString += "\0\0";

Doesn't add two nuls to the AggregateString (for obvious reasons), which
broke the asmprinter when the first character of an asm string was not
literal text.

llvm-svn: 30625
2006-09-27 16:44:09 +00:00
Chris Lattner 8d21485660 Actually, name the method PrintSpecial to match other stuff in AsmPrinter.h
llvm-svn: 30618
2006-09-26 23:47:10 +00:00
Chris Lattner 5fd0154523 Add support for ${:foo} syntax, where "foo" is passed into "printSpecial" and
has no associated operand.  This is useful for portably encoding stuff like
the comment character into an asm string.

llvm-svn: 30617
2006-09-26 23:45:08 +00:00
Chris Lattner 7d3fd4f888 don't allow 'imm' or specific imms, like '1' on the LHS of a binop.
This shrinks X86GenDAGISel by ~330 lines.

llvm-svn: 30574
2006-09-21 20:46:13 +00:00
Chris Lattner 99ae714459 Fit to 80 columns.
llvm-svn: 30572
2006-09-21 18:28:27 +00:00
Jim Laskey fbeab72759 Trim the home directory from the dejagnu test
llvm-svn: 30519
2006-09-20 09:20:22 +00:00
Evan Cheng 9de003670f Allow PatFrag to be a leaf node.
llvm-svn: 30498
2006-09-19 19:08:04 +00:00
Evan Cheng 00b2848adb Add result of a Xform to isel queue.
llvm-svn: 30497
2006-09-19 18:40:15 +00:00
Chris Lattner bea5f91946 If multiple predicates are listed, they must all pass
llvm-svn: 30476
2006-09-19 00:41:36 +00:00
Chris Lattner bba17b9913 There!
llvm-svn: 30473
2006-09-18 22:41:07 +00:00
Chris Lattner 82a73a1989 Fix Regression/TableGen/2006-09-18-LargeInt.td
llvm-svn: 30472
2006-09-18 22:28:27 +00:00
Jim Laskey ee7929db34 Switching to NewNightlyTest.php
llvm-svn: 30394
2006-09-15 17:03:36 +00:00
Chris Lattner 3ffda067e3 Relax this check.
llvm-svn: 30381
2006-09-14 23:54:24 +00:00
Jim Laskey 5c3bdbad9b No longer used, and confuses maintainers
llvm-svn: 30248
2006-09-11 16:02:58 +00:00
Evan Cheng 1ec61ba00a 1) With X86 lowering change, the following can no longer happen since
the branch's chain is also produced by cmp.
          [ch, r : ld]
             ^ ^
             | |
      [XX]--/   \- [flag : cmp]
       ^             ^
       |             |
       \---[br flag]-

Remove an isel check which prevents loads from being folded into cmp / test
instructions.

2) Whenever possible, delete a selected node to allow more load folding
opportunities. Note not all nodes can be deleted after it has been
selected. Some may have simply morphed; some have not changed at all (e.g.
EntryToken).

llvm-svn: 30242
2006-09-11 02:24:43 +00:00
Evan Cheng 5a798b0648 Generated isel should favors explicit constant operand (+2) over an operand with a predicate (+1).
llvm-svn: 30180
2006-09-08 07:26:39 +00:00
Chris Lattner a2d7d1c4fa Fix JIT encoding of two-addr instructions.
llvm-svn: 30111
2006-09-05 03:01:52 +00:00
Chris Lattner 13a5dcddce Fix a long-standing wart in the code generator: two-address instruction lowering
actually *removes* one of the operands, instead of just assigning both operands
the same register.  This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.

Changing this also gets rid of a bunch of hacky code in various places.

This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.

llvm-svn: 30108
2006-09-05 02:12:02 +00:00
Chris Lattner 70fd01a1b8 Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
parse right.  This fixes TableGen/MultiClass.td

llvm-svn: 30037
2006-09-01 22:07:27 +00:00
Chris Lattner c05fac8b83 fix an assertion with multidefs. Def inside of multiclasses don't need to
be complete.

llvm-svn: 30034
2006-09-01 21:59:03 +00:00
Chris Lattner aec1af2239 regenerate
llvm-svn: 30029
2006-09-01 21:14:42 +00:00
Chris Lattner 66b7235877 Add often-requested support for defining "multiclasses" which can be instantiated.
This allows you to define multiple definitions with one line, encouraging
more .td file factoring.

llvm-svn: 30027
2006-09-01 21:13:49 +00:00
Evan Cheng 9b675bd769 Issue cvs co with -P option to prune empty directories. Remove the unnecessary
update stage.

llvm-svn: 29955
2006-08-29 18:01:18 +00:00
Reid Spencer 97c598083e Add virtual methods to all subclasses so they are not overloaded.
llvm-svn: 29930
2006-08-28 00:12:25 +00:00
Chris Lattner 251468e9d0 Use compiler.h instead of hand rolling our own macro
llvm-svn: 29913
2006-08-27 13:16:24 +00:00
Evan Cheng 44ce57d5c2 Do not emit getTargetNode() and SelectNodeTo() which takes more than 3
SDOperand arguments. Use the variants which take an array and number instead.

llvm-svn: 29906
2006-08-27 08:11:28 +00:00
Evan Cheng 34b70eea5c SelectNodeTo now returns a SDNode*.
llvm-svn: 29901
2006-08-26 08:00:10 +00:00
Evan Cheng b7b5ba5aaf Minor getCopyToReg() call change.
llvm-svn: 29900
2006-08-26 07:39:28 +00:00
Evan Cheng 61413a3d72 Select() no longer require Result operand by reference.
llvm-svn: 29898
2006-08-26 05:34:46 +00:00
Evan Cheng a8b2b6c7ff Remove dead code.
llvm-svn: 29897
2006-08-26 01:34:15 +00:00
Evan Cheng eaf9fba2ff A bit more clean up.
llvm-svn: 29893
2006-08-26 01:02:19 +00:00
Evan Cheng 548bd0dc95 - Clean up tablegen dag isel generator code.
- Clean up the code generated by tablegen:
  * AddToISelQueue now takes one argument.
  * ComplexPattern matching condition can now be shared.
  * Eliminate passing unnecessary arguments to emit routines.
  * Eliminate some unneeded SDOperand declarations in select routines.
  * Other minor clean ups.
- This reduces foot print slightly: X86ISelDAGToDAG.o is reduced from 971k
  to 823k.

llvm-svn: 29892
2006-08-26 00:59:04 +00:00
Patrick Jenkins 06725191ab Corrected an error that was introduced yesterday that caused the GCC
version to be left blank if the build failed.

Also corrected a problem where if the build failed the nightly tester
would still try to read the results of the Dejagnutests log even
though it didnt exist.

llvm-svn: 29829
2006-08-22 18:11:19 +00:00
Patrick Jenkins 235abe4ce8 The new nightly tester should stop outputing a message stating the
testresults directory is not present unless the script is run as verbose.

llvm-svn: 29797
2006-08-21 20:45:57 +00:00
Patrick Jenkins deb77ee8eb These changes reflect the changes in the database for how tests are stored
and bring the handing of dejagnu tests into compliance with this new scheme.

llvm-svn: 29772
2006-08-18 18:00:21 +00:00
Patrick Jenkins d515016982 Changing the format dejagnu tests are submitted. We used to only submit multisource information for pass fail. Now we submit all pass/fail test information. This should fix the issue where some results were not being reported.
llvm-svn: 29757
2006-08-17 22:11:03 +00:00
Patrick Jenkins 0cead44fb1 My last commit added some experimental features I have been working on. This commit rolls those back.
llvm-svn: 29738
2006-08-16 22:32:20 +00:00
Patrick Jenkins 2bc1934fb1 Changed the call to countloc.sh so that the correct topdirectory of the llvm build is set.
llvm-svn: 29736
2006-08-16 22:18:41 +00:00
Evan Cheng 63d178f473 SelectNodeTo() may return a SDOperand that is different from the input.
llvm-svn: 29726
2006-08-16 07:30:09 +00:00
Chris Lattner d16696d115 The generated runloop shouldn't require Select to update 'Result'. In fact
we'd like to remove result entirely.

llvm-svn: 29713
2006-08-15 23:42:26 +00:00
Chris Lattner 72608b5387 allow Select to return the node being selected if RAU isn't needed.
llvm-svn: 29712
2006-08-15 23:27:50 +00:00
Reid Spencer 7c63770b0e Simplify this a little bit.
llvm-svn: 29695
2006-08-15 03:50:10 +00:00
Reid Spencer e2bcaaa250 This script takes arguments so remove the check for number of arguments,
just check the first arg to see if its -topdir.

llvm-svn: 29694
2006-08-15 03:48:22 +00:00
Reid Spencer 235c1555c3 Make all tools that use llvmdo have a -topdir option that allows the top
source dir for LLVM to be specified explicitly. This removes the dependency
on the llvm-config script. If the option is not given, then the scripts use
llvm-config which should be both built and in the PATH. This arrangement
provides a useful default for most developers but also allows the nightly
tester to execute countloc.sh before llvm-config is built and without
altering the PATH.

llvm-svn: 29663
2006-08-14 18:49:05 +00:00
Patrick Jenkins d531b509cc Added some comments to clarify code around sub TestDirectory
llvm-svn: 29658
2006-08-14 16:07:14 +00:00
Reid Spencer f82ce13179 1. fix bug by ensuring we start at the llvm source root.
2. make use of the -code-only option on llvmdo
3. Add some debug print statements to find #1

llvm-svn: 29655
2006-08-13 19:03:06 +00:00
Reid Spencer 0cb9ded022 Count the documentation. Otherwise we take a 30,000 hit in the LOC on the
nightly test graph. And, documentation is important.

llvm-svn: 29654
2006-08-13 18:59:40 +00:00
Reid Spencer 4e6115ea3a Use the new -code-only option to llvmdo so that we only count things that
are considered to be code. This will give a drop in the LOC count on the
nightly testers, but it is more accurate than previous estimates.

llvm-svn: 29653
2006-08-13 18:29:21 +00:00
Reid Spencer 1be8d4c3c3 Add a -code-only option which restricts llvmdo to visiting just those
files that are considered to be code. Documentation is excluded.

llvm-svn: 29652
2006-08-13 18:28:27 +00:00
Reid Spencer 558269c8d6 Changes for LLVM coding standard compliance:
1. Remove tabs
  2. Wrap to 80 columns
  3. Put spaces between "if" or "elsif" and expression
  4. Put { on same line as if statement.
  5. Make indentation be 2 spaces.
Functionality change:
  Run utils/countloc.sh after the build is done. This is necessary because
  that script now uses llvm-config to find the top src directory.

llvm-svn: 29651
2006-08-13 09:53:02 +00:00
Reid Spencer 52aeae0666 Lexer.cpp is a generated file both in lib/AsmParser and projects/Stacker
so we remove it from being counted.

llvm-svn: 29641
2006-08-11 23:58:58 +00:00
Reid Spencer 854b5c7c40 Weed out some cruft and add in some missing extensions.
llvm-svn: 29638
2006-08-11 23:51:05 +00:00
Reid Spencer 8ca43d72aa Weed out cruft that should not be counted and add in extensions we
previously missed.

llvm-svn: 29637
2006-08-11 23:50:27 +00:00
Patrick Jenkins e97e60734a Added two flags (-submit-server and -submit-script) which allow the user to specify where the test results are submitted too. If these are not specified they default to the LLVM.org server.
llvm-svn: 29633
2006-08-11 23:02:09 +00:00
Reid Spencer db3752ab6b Make this script not care where it is run from by getting the llvm src
root from the llvm-config script.

llvm-svn: 29632
2006-08-11 21:55:31 +00:00
Reid Spencer 719c383594 Make llvmdo and llvmgrep invulnerable to where they are run from by getting
the llvm source root from the llvm-config command. The dependency now is
that the correct llvm-config command is in the path. For most developers
this is the case.

llvm-svn: 29630
2006-08-11 21:53:27 +00:00
Reid Spencer 1f0b9a1158 Clean up the HTML output. Add a -filedetails option to report the number of
lines contributed by each user to each file.

llvm-svn: 29624
2006-08-11 20:44:17 +00:00
Reid Spencer c647e96ea0 Remove blank line at end of file, removing test user "foo" from CVS history.
llvm-svn: 29623
2006-08-11 19:42:11 +00:00
Reid Spencer 092ae90eab Drop the -details option, it was broken. If you want to know about a
particular directory, just pass that directory to the script. Also, clean
up the HTML output, put list of skipped dirs at the end, and make a few
other minor improvements.

llvm-svn: 29620
2006-08-11 18:36:55 +00:00
Evan Cheng 962752dcea Use SmallVector instead.
llvm-svn: 29619
2006-08-11 18:33:41 +00:00
Evan Cheng 0d3a754ae8 - Prevent some functions from being inlined to eliminate the code size bloat
introduced by previous commit.
- SelectCode now returns a SDNode*. If it is not null, the selected node
  produces the same number of results as the input node. The seletion loop
  is responsible for calling ReplaceAllUsesWith() to replace the input node
  with the output target node. For other cases, e.g. when load is folded,
  the selection code is responsible for calling ReplaceAllUsesOfValueWith()
  and SelectCode returns NULL.
- Other clean ups.

llvm-svn: 29602
2006-08-11 08:59:35 +00:00
Reid Spencer 6ea83217ad Fix a comment.
llvm-svn: 29590
2006-08-09 19:40:13 +00:00
Chris Lattner f9cab8c965 Revert previous patch
llvm-svn: 29585
2006-08-09 16:44:44 +00:00
Tanya Lattner 7f935ba0ae Reverting back to original 1.8 version so I can manually merge in patch.
llvm-svn: 29584
2006-08-09 16:41:21 +00:00
Evan Cheng e40c7853da Merge some NightlyTest.pl changes.
llvm-svn: 29579
2006-08-09 05:45:12 +00:00
Chris Lattner c24a1d3093 Start eliminating temporary vectors used to create DAG nodes. Instead, pass
in the start of an array and a count of operands where applicable.  In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap.  In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.

I updated a lot of code calling getNode that takes a vector, but ran out of
time.  The rest of the code should be updated, and these methods should be
removed.

We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.

It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.

llvm-svn: 29566
2006-08-08 02:23:42 +00:00
Patrick Jenkins da2ace7117 Removed unneccesary output from nightly tester
llvm-svn: 29565
2006-08-08 02:03:53 +00:00
Evan Cheng 97d5cc165a Making TableGen'd instruction selection code non-recursive. This fixes PR805.
llvm-svn: 29548
2006-08-07 22:17:58 +00:00
Patrick Jenkins 814928fb32 Reinstated the sending of a list of all dejagnutests run. Also fixed a rather embarresing error introduced during version 1.41 where i commented out the actual sending of the data to the results server.
llvm-svn: 29538
2006-08-07 01:54:37 +00:00
Patrick Jenkins f6f9f6509e no longer sending the list of all dejagnu tests because it is too big at the present time
llvm-svn: 29537
2006-08-06 21:47:43 +00:00
Patrick Jenkins 9ecfdd4185 Changed a = to a .= so we now append tests we have performed to the master list of all tests instead of assigning it as the master list.
llvm-svn: 29531
2006-08-04 21:42:58 +00:00
Patrick Jenkins 681f7f80a4 Made some more changes to the print statements in the nightly tester. The last commit was a preemptive strike.
llvm-svn: 29526
2006-08-04 17:55:01 +00:00
Patrick Jenkins 19685f14eb Encapsulated all of the print statements in "if( $VERBOSE) { }". The testing script will be absoutely silent now except for errors, which will still be printed to the annoyance of the user.
llvm-svn: 29525
2006-08-04 17:53:27 +00:00
Patrick Jenkins 8c2b8f3b0b We should now send the correct list of dejagnu tests instead of the csv file of test results when we submit results back to the nightly tester.
llvm-svn: 29523
2006-08-04 17:40:54 +00:00
Reid Spencer e141e3187a Print an error message if the lib directory (first argument) is not a
directory.

llvm-svn: 29508
2006-08-03 19:10:03 +00:00
Patrick Jenkins e6fde69b58 One of the directories we were searching in for .o and .a files was wrong. We now search /lib instead of /libs.
llvm-svn: 29496
2006-08-03 16:28:58 +00:00
Chris Lattner b359a7a69c Remove some extraneous newlines.
llvm-svn: 29492
2006-08-03 00:42:26 +00:00
Chris Lattner 6379c96c07 Really add support for compilers without noinline
llvm-svn: 29491
2006-08-03 00:26:13 +00:00
Patrick Jenkins f6465d8926 We now only search the following directories for .o and .a files:
utils/
libs/
tools/
Release/ & Debug/
as per Chris.

llvm-svn: 29488
2006-08-02 23:48:07 +00:00
Patrick Jenkins 942f217d99 Removed some dead code and hopefully fixed the issue where the total list of tests was not being sent
llvm-svn: 29476
2006-08-02 18:37:40 +00:00
Reid Spencer 227a8425ac Fix a problem with use of undefined variables. Print an error message if
the first argument is omitted. Attempt to use a standard/default font.
Make the generation of the DOT file readable.

llvm-svn: 29429
2006-08-01 08:09:03 +00:00
Evan Cheng 70c4ae4bda Pass N by reference to select functions to prevent gcc from allocating more stack.
llvm-svn: 29423
2006-08-01 01:07:48 +00:00
Evan Cheng c1163d2fa7 Remove an unneeded match condition: the type check for root node has been
moved to outside the actual select routine.

llvm-svn: 29415
2006-07-31 19:01:58 +00:00
Andrew Lenharth e3cbd4b9f9 fix externals
llvm-svn: 29409
2006-07-29 04:27:34 +00:00
Evan Cheng 149130ad6b Split each select function for a particular opcode into multiple ones. One
per possible ValueType of the node. e.g. Select_add is split into Select_add_i8,
Select_add_i16, etc.

For opcodes which do not produce a non-chain result, it is split on the
ValueType of its first non-chain operand. e.g. Select_store.

On X86 / Mac OS X, Select_store used to be the largest function. It had a stack
frame size of 8.5k. Now the largest one is Store_i32 with a frame size of 3.1k.

llvm-svn: 29404
2006-07-28 22:51:01 +00:00
Evan Cheng 75a22216f7 Clean up.
llvm-svn: 29378
2006-07-28 01:19:22 +00:00
Patrick Jenkins 2618c61f47 Removed some unneccesary printing from the nightly tester.
llvm-svn: 29377
2006-07-28 01:06:18 +00:00
Evan Cheng e2a3f7014d Rename IsFoldableBy to CanBeFoldedleBy
llvm-svn: 29376
2006-07-28 01:03:48 +00:00
Evan Cheng b572401bea Remove InFlightSet hack. No longer needed.
llvm-svn: 29373
2006-07-28 00:47:19 +00:00
Reid Spencer eca6f7320e Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument.
Patch contributed by Anton Korobeynikov. Thanks!

llvm-svn: 29368
2006-07-27 23:00:30 +00:00
Patrick Jenkins 77c08a42ab Removed some unneccesary print statemnts
llvm-svn: 29362
2006-07-27 21:01:39 +00:00
Patrick Jenkins 5afcc63123 ChangeDir now returns the correct value
llvm-svn: 29361
2006-07-27 20:21:26 +00:00
Evan Cheng 7b0ed57543 Remove dead code.
llvm-svn: 29359
2006-07-27 19:59:34 +00:00
Patrick Jenkins 2cac74f4cb Fixed a stupid error where changedir returned false upon success.
llvm-svn: 29357
2006-07-27 19:22:06 +00:00
Patrick Jenkins 80ae7ab8f5 Added more descriptive output to singlesource,multisource tests.
llvm-svn: 29353
2006-07-27 19:00:01 +00:00
Patrick Jenkins 40cc192a3c Removed some clutter that was left over from development.
Changed how changedir worked. Hopefully now when it fails it will tell us why.

llvm-svn: 29352
2006-07-27 18:28:50 +00:00
Evan Cheng 061aba35c1 Let each target specific isel provide routine to check if a chain producing node is foldable by another.
llvm-svn: 29335
2006-07-27 06:36:49 +00:00
Patrick Jenkins 9f5ea5dc5a I made a stupid mistake when adding support for -use-gmake. ~PJ
llvm-svn: 29321
2006-07-27 01:24:35 +00:00
Patrick Jenkins 10d0e34001 added support for the -use-gmake option. This will come in handy when running the test on SunOS.
llvm-svn: 29319
2006-07-27 01:17:17 +00:00
Patrick Jenkins 0f3e0b0292 This change will allow support for SunOS to the testing script. It adds a check to see if we're running on SunOS and if so, then uses gmake instead of make.
llvm-svn: 29316
2006-07-27 01:03:46 +00:00
Evan Cheng 9384400d83 Fix for bug 840. Only use noinline attribute if gcc version >= 3.4
llvm-svn: 29311
2006-07-26 23:06:27 +00:00
Reid Spencer 238caefaa4 Add a feature for debugging library dependency cycles, -why option. This
implies -flat and will produce a list of all the symbols for each library
that another library depends on. Run the output through c++filt for
better readability. Also, don't generate a temporary file for storing the
dependent library names. Perl can handle it in a %hash.

llvm-svn: 29273
2006-07-25 19:12:06 +00:00
Patrick Jenkins 6e884eb59c Fixing a syntax error and adding buildtype to the .a and .o file size information.
llvm-svn: 29270
2006-07-23 22:57:28 +00:00
Patrick Jenkins 1049f40554 When the ability to gather .a and .o file sizes was added, it changed the directory the perl script was in so when we tried to run dejagnu tests, everything failed.
llvm-svn: 29269
2006-07-23 21:38:07 +00:00
Patrick Jenkins 1a61dc40e4 added status message during nightly test
llvm-svn: 29263
2006-07-22 00:00:08 +00:00
Evan Cheng 774d8fd1ef Removed a hack intended to allow (store (op (load))) folding. Will handle this with preprocessing.
llvm-svn: 29258
2006-07-21 22:19:51 +00:00
Patrick Jenkins 3b606ccc94 Added a check to skip dejagnu test results gathering if we did not run dejagnu tests
llvm-svn: 29252
2006-07-21 21:58:06 +00:00
Patrick Jenkins 7ef934f6ab Fixed an issue of variable scope that prevented file size from being submitted to the server.
llvm-svn: 29251
2006-07-21 21:43:09 +00:00
Jim Laskey 4b49c23571 Eliminate data relocations by using NULL instead of global empty list.
llvm-svn: 29250
2006-07-21 21:15:20 +00:00
Jim Laskey 4e153f1b91 Use an enumeration to eliminate data relocations.
llvm-svn: 29249
2006-07-21 20:57:35 +00:00
Patrick Jenkins c8b9c53a11 Added code to get .a and .o file sizes and submit them to the server in the nightly report.
llvm-svn: 29248
2006-07-21 19:51:40 +00:00
Patrick Jenkins a95958cf4b Fixed issue where nightly test always tells you you need to use -nickname
llvm-svn: 29241
2006-07-21 01:39:42 +00:00
Patrick Jenkins db27946d2c The nightly tester will no longer report numbers instead of tests performed.
llvm-svn: 29240
2006-07-21 01:34:01 +00:00
Evan Cheng c62c697955 Also checks for noResults field.
llvm-svn: 29235
2006-07-20 23:36:20 +00:00
Patrick Jenkins db3c520931 We now fail and print an error message if a nightly tester does not specify a nickname on the command line
llvm-svn: 29230
2006-07-20 22:28:43 +00:00
Patrick Jenkins 7c1ea253ad Fixed a problem that caused the script to abort right before it sent out the information
llvm-svn: 29218
2006-07-20 16:54:43 +00:00
Patrick Jenkins 23b8b2d652 Removed the portion that determines which tests are newly passing/failing because we no longer keep the previos days list on the testing machines.
Added functionality to send lists of all tests, all passing tests, all failing tests all unexpected failing tests.

llvm-svn: 29209
2006-07-19 17:52:51 +00:00
Evan Cheng 2884b5cc93 Make sub- and super- register classes const.
llvm-svn: 29200
2006-07-19 05:58:18 +00:00
Chris Lattner 3650465273 Fix a bug handling instructions, like blr, which just consist of a text
string.  The return value of printInstruction should be true for these.

llvm-svn: 29196
2006-07-19 01:39:06 +00:00
Evan Cheng c767acd25a Add code size to target instruction use it as the 3rd isel sorting tie-breaker.
llvm-svn: 29193
2006-07-19 00:24:41 +00:00
Evan Cheng aeccc6e676 Make sub- super- reg-class tables static.
llvm-svn: 29190
2006-07-18 22:18:31 +00:00
Patrick Jenkins f9bafae741 yet another change to get the correct gcc version for the nightly test results.
llvm-svn: 29188
2006-07-18 21:21:53 +00:00
Chris Lattner 68ee5cfe10 Fix case where identical cases were not detected across case #0, because
instructions not handled would have a case value of #0, throwing things off.
This marginally shrinks the X86 asmprinter, but shrinks the sparc asmwriter
by 25 lines.

llvm-svn: 29187
2006-07-18 19:27:30 +00:00
Chris Lattner 6e17208dff Fix an accidentally duplicated line that caused tblgen to crash on itanium.
Add an assert that catches the real problem earlier.

llvm-svn: 29185
2006-07-18 19:06:01 +00:00
Chris Lattner edee52570c Maximally group commands. When all instructions within a command set have a
series of identical commands, handle them all with one switch.  In the case
of the x86 at&t asm printer, only 3 switches are needed for all instructions.

llvm-svn: 29184
2006-07-18 18:28:27 +00:00
Chris Lattner cb0c848d34 Change generator to remove operands as it processes them. No change in
generated file.

llvm-svn: 29183
2006-07-18 17:56:07 +00:00
Chris Lattner 9d250696b7 Handle the last operand more intelligently. When emitting the \n, also
return from the asmprinter to make the generated asmprinter both more
efficient and smaller.

llvm-svn: 29182
2006-07-18 17:50:22 +00:00
Chris Lattner 75dcf6cbd8 Emit switches with 1/2 cases as unconditional code or an if/then/else for
tidyness.

llvm-svn: 29181
2006-07-18 17:43:54 +00:00
Chris Lattner 66e288bec3 Steal bits from the asm string index to use for operand information. On both
x86 and ppc, this gets us 4 more bits to play with, since the string indices
both only use 12 bits.

llvm-svn: 29180
2006-07-18 17:38:46 +00:00
Chris Lattner 1ac0eb7f8b Merge operand info and asmstr idx into a single 32-bit field. No other change.
llvm-svn: 29179
2006-07-18 17:32:27 +00:00
Patrick Jenkins be25460706 Minor output changes.
llvm-svn: 29178
2006-07-18 17:21:30 +00:00
Chris Lattner 692374c748 Completely change the structure of the generated asmprinter to be more table
based and less switch-statements-with-hundreds-of-cases based.  This shrinks
the x86 asmprinters to about 1/3 their previous size.

Other improvements coming.

llvm-svn: 29177
2006-07-18 17:18:03 +00:00
Patrick Jenkins a72f84eb39 If a gccpath is specified when invoking the nightly test script we will hopefully now use that gcc for the gcc version. Also fixed some 80 char column stuff.
llvm-svn: 29162
2006-07-17 16:41:19 +00:00
Evan Cheng 95454e7a2f Use __attribute__((noinline)) only if compiled by gcc.
llvm-svn: 29161
2006-07-16 06:14:37 +00:00
Evan Cheng 87b2fe9474 Parameterize target node ValueType to allow more sharing of emit functions.
Also reduce the number of arguments passed to emit functions and removed a
hack.

llvm-svn: 29160
2006-07-16 06:12:52 +00:00
Evan Cheng 69367fedd2 Reduce instruction selection code size and stack frame size by factoring
code that emit target specific nodes into emit functions that are uniquified
and shared among selection routines.
e.g. This reduces X86ISelDAGToDAG.o (release) from ~2M to ~1.5M. Stack frame
size of Select_store from ~13k down to ~8k.
This is the first step. Further work to enable more sharing will follow.

llvm-svn: 29158
2006-07-15 08:45:20 +00:00