Commit Graph

22334 Commits

Author SHA1 Message Date
Chris Lattner
7070c5f241 Refactor/genericize this, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25525 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 05:57:36 +00:00
Chris Lattner
e7ed39d2e9 Make sure this tests the right thing, xfail on solaris, which doesn't have floorf
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25524 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 05:56:34 +00:00
Chris Lattner
39a17dd31d Fix bugs lowering stackrestore, fixing 2004-08-12-InlinerAndAllocas.c on
PPC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25522 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 05:22:07 +00:00
Chris Lattner
1ac2d51806 Speedup and simplify pass registration by the observation that there is
exactly one PassInfo object per RegisterPass object and that their lifetimes
are the same.  As such, there is no reason for the RegisterPass object to
dynamically allocate the PassInfo object at compiler startup time: just inline
the object by-value.  This should reduce codesize, heap size, and startup time. Yaay.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25521 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 01:01:04 +00:00
Chris Lattner
fc4417837a Remove dead #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25520 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 00:38:14 +00:00
Chris Lattner
7e07b24b39 It doesn't make sense to give llc a list of passes on the command line,
LLVM doesn't use it and it can't work anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25519 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 00:36:05 +00:00
Chris Lattner
04666d8a39 this doesn't work, remove it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25518 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23 00:32:33 +00:00
Chris Lattner
1dc3fd1110 This only needs <iosfwd> not <iostream>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25517 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:43:45 +00:00
Chris Lattner
ca26180d39 Add #include of <iostream>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25516 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:41:42 +00:00
Chris Lattner
2c2c6c61f1 Add explicit #includes of <iostream>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25515 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:41:00 +00:00
Chris Lattner
dac58ad983 Make iostream #inclusion explicit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:32:06 +00:00
Chris Lattner
7238210e1f Add explicit iostream #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25513 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:19:18 +00:00
Chris Lattner
e05cf71616 Make this more efficient in the following ways:
1. Do not statically construct a map when the program starts up, this
   is expensive and cannot be optimized.  Instead, create a list.
2. Do not insert entries for all function in the module into a hashmap
   that lives the full life of the compiler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25512 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:10:26 +00:00
Chris Lattner
e01a9852a0 This header should not pull in <iostream>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25511 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 22:54:51 +00:00
Chris Lattner
e31a9ccb9c add explicit #includes of iostream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 22:53:40 +00:00
Chris Lattner
86a5484079 Add explicit #includes of <iostream>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25509 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 22:53:01 +00:00
Chris Lattner
0f9f8c3759 Several non-functionality changing changes:
1. Use the varargs version of getOrInsertFunction to simplify code.
2. remove #include
3. Reduce the number of #ifdef's.
4. remove extraneous vertical whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25508 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 22:35:08 +00:00
Jeff Cohen
96f20d94f8 Visual Studio still has issues at being left out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25507 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 20:37:25 +00:00
Jeff Cohen
ca5ca41a63 Visual Studio neurotic about inconsistent class/struct usage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25506 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 20:36:43 +00:00
Chris Lattner
a3818e6f9a Fix a bug in a recent refactor that caused a bunch of programs to miscompile
or the compiler to crash.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25503 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 19:12:11 +00:00
Duraid Madina
19e5e141c1 insignificant, but next up is proper stack frame layout!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25497 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 14:27:19 +00:00
Chris Lattner
348e93c8f7 Fix CodeGen/PowerPC/2006-01-20-ShiftPartsCrash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25496 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 04:27:00 +00:00
Chris Lattner
60dda07913 new testcase that crashes llc for ppc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25495 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 04:25:07 +00:00
Evan Cheng
86556a5f42 Rename fcmovae to fcmovnb and fcmova to fcmovnbe (following Intel manual).
Some assemblers can't recognize the aliases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25494 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 02:55:41 +00:00
Evan Cheng
a9c2091cd3 Do some code refactoring on Jim's scheduler in preparation of the new list
scheduler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25493 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 02:32:06 +00:00
Chris Lattner
bc1c215453 trivial formatting improvement: don't insert extra blank lines between .comm
vars.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25492 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 01:35:26 +00:00
Jim Laskey
63ae85f194 Simplify search for abbreviations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25491 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 01:13:18 +00:00
Jim Laskey
736832107b Correct some simple errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25490 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-21 00:59:54 +00:00
Jim Laskey
4002017e68 Right size integer values before emitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25489 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 21:02:36 +00:00
Robert Bocchino
b78e8382e8 Make the C writer work with packed types. printContainedStructs is
still not quite right and will be fixed later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25488 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 20:43:57 +00:00
Jim Laskey
d18e28964b Reworked how Dwarf debug info entries and abbreviations are handled. Added
pubnames and debuy str sections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25487 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 20:34:06 +00:00
Duraid Madina
bea99471c7 remove RET hack, add proper support for rets (watching out for ret voids)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25486 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 20:24:31 +00:00
Chris Lattner
14d9b20b78 Simplify CWriter::printContainedStructs, also allowing it to work with
PackedTypes as a side-effect.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25485 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:57:03 +00:00
Chris Lattner
1f16ff6f0a LowerReturn now doesn't have to handle f32 returns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25484 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:41:25 +00:00
Chris Lattner
a68d204843 remove some unintentionally committed code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25483 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:40:10 +00:00
Chris Lattner
4eebb60f84 If the target doesn't support f32 natively, insert the FP_EXTEND in target-indep
code, so that the LowerReturn code doesn't have to handle it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25482 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:38:32 +00:00
Robert Bocchino
7c2b7c7c75 Fixed InitializeMemory to handle ConstantPacked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25481 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:18:40 +00:00
Chris Lattner
f690bc8c07 Remove dead expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25480 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:04:43 +00:00
Chris Lattner
75d3226b5e Don't use invalidated use_iterator's. This fixes a crash compiling povray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25479 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 18:01:41 +00:00
Duraid Madina
ecc1a1bb1e fix sext breakage: now we correctly deal with functions that return
int vs uint


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25478 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 16:10:05 +00:00
Jeff Cohen
eca86da38c Update Windows version of config.h to note availability of floor/floorf/ceil/ceilf.
Also pulled Windows-specific modifications to config.h.in to a separate file, so
that changes to it trigger regeneration of config.h (which doesn't happen when the
custom build step for it changes).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25477 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 04:34:45 +00:00
Duraid Madina
a7fb5bef55 fix storing bools! eek!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25476 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 03:40:25 +00:00
Reid Spencer
f20bf3e629 Add a test case for PR697, ensuring the linker works with ConstantPacked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25475 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 01:31:58 +00:00
Evan Cheng
98f5dab8a7 Stop doing that accidental commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25474 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 01:14:05 +00:00
Evan Cheng
21d5443934 A few more SH{L|R}D peepholes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25473 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 01:13:30 +00:00
Evan Cheng
52b8b5982f Added a load folding bug test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25472 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 01:12:23 +00:00
Evan Cheng
76356d9594 Prevent folding of a node with multiple uses if the node already folds a load!
Here is an example where the load ended up being done twice:

%A = global uint 0

uint %test(uint %B, ubyte %C) {
	%tmp = load uint *%A;
	%X = shl uint %tmp, ubyte %C
	%Cv = sub ubyte 32, %C
	%Y = shr uint %B, ubyte %Cv
	%Z = or uint %Y, %X
	store uint %Z, uint* %A
	ret uint %Z
}

==>

	subl $4, %esp
	movl %ebx, (%esp)
	movl 8(%esp), %edx
	movl A, %eax
	movb 12(%esp), %bl
	movb %bl, %cl
	shldl %cl, %edx, %eax
	movb %bl, %cl
	shldl %cl, %edx, A
	movl (%esp), %ebx
	addl $4, %esp
	ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25471 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-20 01:11:03 +00:00
Robert Bocchino
d900c6a8b3 ConstantFoldLoadThroughGEPConstantExpr wasn't handling pointers to
packed types correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25470 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19 23:53:23 +00:00
Evan Cheng
cce47faf52 Didn't mean to commit the last one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25469 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19 23:27:08 +00:00
Evan Cheng
956044cf03 Added i16 SH{L|R}D patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25468 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19 23:26:24 +00:00