Commit Graph

12045 Commits

Author SHA1 Message Date
Vikram S. Adve
b5b0b45e58 Add getCaller() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13650 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 08:02:45 +00:00
Vikram S. Adve
052682f1c3 Inline both direct and indirect callees in the CBU phase because
a direct callee may have indirect callees and so may have changed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13649 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 08:00:34 +00:00
Vikram S. Adve
c5204fb6f8 Complete rewrite of the code that merges DS graphs for equivalence classes
of functions called at a common call site.  The rewrite inlines the
resulting graphs bottom-up on the SCCs of the CBU call graph.  It also
simplifies the merging of equivalence classes by exploiting the fact that
functions in non-trivial SCCs are already merged.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13645 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 07:54:02 +00:00
Vikram S. Adve
44860ccaf2 Fix size/offset assertion to allow negative offsets and folded nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13644 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 07:34:53 +00:00
Brian Gaeke
79333da2bb Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13643 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 05:10:06 +00:00
Brian Gaeke
91ad59d75e Fix a typo in the head-of-file comment.
Rewrite the comments about the different versions of BuildMI, to
better emphasize their differences.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13642 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 05:04:00 +00:00
Reid Spencer
939290f808 Some additional data added to the bytecode specification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13626 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-22 05:56:41 +00:00
Reid Spencer
500266187c Added an initial template/overview for documentation of the LLVM Bytecode
file format. This format is being extracted from the source code and the
small recesses of Chris' brain.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13625 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-22 02:28:36 +00:00
Reid Spencer
f90ce9ecf8 Removed the 64-bit fix from the "to do" list since the bug is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13624 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-22 01:04:19 +00:00
Misha Brukman
694b3ff967 Pass the Makefile flags to recursive makes in {PARALLEL,OPTIONAL}_DIRS targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13623 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 23:21:11 +00:00
Chris Lattner
d49b120414 It's not clear to me whether the old version was correct C++ code, but in
any case it's not portable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13621 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 18:38:16 +00:00
Chris Lattner
3b963590ef Starting an identifier with an _ is not legal C/C++ code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13620 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 18:37:13 +00:00
Chris Lattner
e5ad10a016 Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13619 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 16:48:20 +00:00
Chris Lattner
0f9e9d0ad2 Fix for PR340: Verifier misses malformed switch instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13618 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 16:47:21 +00:00
Chris Lattner
6d09becf08 Testcase for PR340: Verifier misses malformed switch instruction
This testcase was reduced by John, thanks!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13617 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 16:47:02 +00:00
Misha Brukman
c2fb006ecb Pass given flags on to recursive sub-makes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13616 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-21 00:09:21 +00:00
Alkis Evlogimenos
972c0c9f0a Change DEPRECATED macro to ATTR_DEPRECATED as this conflicts with some
java constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13611 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20 21:31:43 +00:00
Chris Lattner
433e25a920 Fix to make the CBE always emit comparisons inline. Hopefully this will
fix the really bad code we're getting on PPC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13609 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20 20:25:50 +00:00
Brian Gaeke
ceabd97423 Fix a bug in outputting branches to constant PCs. Since the PC is supplied as
a full 64-bit address, it must be adjusted to fit in the branch instruction's
immediate field. (This is only used in the reoptimizer, for now.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13608 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20 07:43:40 +00:00
Brian Gaeke
a900452d37 Minor simplification: eliminate a dyn_cast.
Fix a typo in a debug message.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13607 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 21:30:01 +00:00
Misha Brukman
e38adf52c8 Add hint about syntax-highlighting non-standardly-named LLVM Makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13606 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 21:20:40 +00:00
Alkis Evlogimenos
2b6d2eb2d0 Declare function defined in namespace llvm as gcc-3.4 doesn't accept a definition in a namespace of a non-declared function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13602 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 19:17:48 +00:00
Brian Gaeke
c58a7f4b3c Add CloneTraceInto(), which is based on (and has mostly the same
effects as) CloneFunctionInto().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13601 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 09:08:14 +00:00
Brian Gaeke
6129af3fb1 Move RemapInstruction() to ValueMapper, so that it can be shared with
CloneTrace, and because it is primarily an operation on ValueMaps.  It
is now a global (non-static) function which can be pulled in using
ValueMapper.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13600 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-19 09:08:12 +00:00
Misha Brukman
a4c6c522ee Minor aesthetic alignments; no functional changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-17 22:28:21 +00:00
Misha Brukman
f40ae3cc9d * Minor aesthetic alignment of iterator declarations
* Removed redundant function comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13592 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-17 22:25:12 +00:00
Brian Gaeke
71d3a87ec1 Define erase forwarding method on traces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13591 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-17 21:17:21 +00:00
Brian Gaeke
2fea9ade55 Fold two assertions with backwards error messages into one with a
correct error message.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13590 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-17 21:15:18 +00:00
Brian Gaeke
cc9620ca29 Clean up this pass somewhat:
Add better comments, including a better head-of-file comment.
Prune #includes.
Fix a FIXME that Chris put here by using doInitialization().
Use DEBUG() to print out debug msgs.
Give names to basic blocks inserted by this pass.
Expand tabs.
Use InsertProfilingInitCall() from ProfilingUtils to insert the initialize call.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13581 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 21:21:52 +00:00
Misha Brukman
93763c3e7d Rename "User's Guide" to "Command Guide" to be consistent with current scheme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13580 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:29:11 +00:00
Misha Brukman
5a256b4ca9 Ignore generated ps files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13579 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:26:45 +00:00
Misha Brukman
43c8e40ba2 Ignore generated man files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13578 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:26:39 +00:00
Misha Brukman
3f8f569837 Ignore generated HTML files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13577 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:26:34 +00:00
Misha Brukman
8d9d79d387 This is the stylesheet used by perldoc.com; we shall modify it as we see fit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13576 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:25:35 +00:00
Misha Brukman
9ff1a93f83 Put outputs of each type into a separate subdirectory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13575 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 20:24:59 +00:00
Brian Gaeke
e993d20630 More pods... work in progress
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13574 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 19:50:33 +00:00
Misha Brukman
3c687a0925 Use <pre> instead of <p><tt> combo to decrease space used for code blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13573 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 19:04:07 +00:00
Misha Brukman
1e4ae2b329 Mention the --tool-args option that Brian and Chris added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13572 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 18:57:24 +00:00
Misha Brukman
f0c71d434a Make link to HowToSubmitABug.html local instead of to LLVM website.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13571 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 18:54:04 +00:00
Brian Gaeke
bfd1ce35c0 NAME section is supposed to have a brief description, for apropos(1) & whatis(1)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13570 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 18:31:13 +00:00
Brian Gaeke
25ab104acb This seems like as good a place as any to keep POD files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13569 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 18:03:22 +00:00
Brian Gaeke
09015d9468 Don't keep track of references to LLVM BasicBlocks while emitting; use
MachineBasicBlocks instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13568 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 06:54:58 +00:00
Brian Gaeke
3fb5d1a6cc Support MachineBasicBlock operands on RawFrm instructions.
Get rid of separate numbering for LLVM BasicBlocks; use the automatically
generated MachineBasicBlock numbering.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13567 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 06:54:57 +00:00
Brian Gaeke
9f088e481c Generate branch machine instructions with MachineBasicBlock operands instead of
LLVM BasicBlock operands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13566 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-14 06:54:56 +00:00
Chris Lattner
fa28bb4601 This was not meant to be committed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13565 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 20:56:34 +00:00
Chris Lattner
82fec4e31d Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
in the size calculation.

This is not something you want to see:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - UNROLLING!

The problem was that 2*2147483648 == 0.

Now we get:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - TOO LARGE: 4294967296>100

Thanks to some anonymous person playing with the demo page that repeatedly
caused zion to go into swapping land.  That's one way to ensure you'll get
a quick bugfix.  :)

Testcase here: Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13564 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 20:43:31 +00:00
Chris Lattner
488b72bd7f New testcase that used to cause the unroller to try to unroll the loop 2G times. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13563 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 20:43:15 +00:00
Misha Brukman
d1fbc8af48 Specify units in padding length.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13560 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 16:37:52 +00:00
Misha Brukman
5538d83c45 Make page HTML-4.01 compliant (& => &amp; in URL).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13559 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 16:37:23 +00:00
Chris Lattner
b7cb9ffd34 Two more improvements for null pointer handling: storing a null pointer
and passing a null pointer into a function.

For this testcase:

void %test(int** %X) {
  store int* null, int** %X
  call void %test(int** null)
  ret void
}

we now generate this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov DWORD PTR [%EAX], 0
        mov DWORD PTR [%ESP], 0
        call test
        add %ESP, 12
        ret

instead of this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %ECX, 0
        mov DWORD PTR [%EAX], %ECX
        mov %EAX, 0
        mov DWORD PTR [%ESP], %EAX
        call test
        add %ESP, 12
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13558 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 15:26:48 +00:00