Commit Graph

4860 Commits

Author SHA1 Message Date
Vikram S. Adve
83e3b6503d This file implements the function DemoteRegToStack(), which takes a
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-10 13:07:58 +00:00
Vikram S. Adve
1690f1d77d This file provides the function DemoteRegToStack(), which takes a
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4963 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-10 13:07:12 +00:00
Vikram S. Adve
e12c74c07b This file implements a pass that automatically parallelizes a program,
using the Cilk multi-threaded runtime system to execute parallel code.
The current version inserts too many sync() operations in the program
because it does not attempt to optimize their placement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4962 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-10 00:43:34 +00:00
Vikram S. Adve
cd53170573 The pass Parallelize automatically parallelizes a program using the
Cilk multi-threaded runtime system to execute parallel code.  This file
exposes some routines needed for code generation for that pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4961 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-10 00:42:22 +00:00
Vikram S. Adve
3dbbaff5ec Fix link errors due to new IPModRef pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4960 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-09 05:53:11 +00:00
Vikram S. Adve
027b27e5b9 Repeat ipa.a. Since IPModRef is currently only used in analysis.o,
it was causing linking errors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4959 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-09 04:46:25 +00:00
Vikram S. Adve
0d4f76637d Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,
i.e., enumerates all data and control dependences for the function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4958 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 14:13:19 +00:00
Vikram S. Adve
96b21c1054 An explicit representation of dependence graphs, and a pass that
computes a dependence graph for data dependences on memory locations
using interprocedural Mod/Ref information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4957 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 13:26:29 +00:00
Chris Lattner
138b0cd7da Namespacify more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4956 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 06:01:34 +00:00
Chris Lattner
bbdabce1e9 Add support to count the number of dynamic instructions executed by LLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4955 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 05:51:08 +00:00
Chris Lattner
a1af8bd72b Add total instruction, bb, & function counts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4954 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 23:24:24 +00:00
Chris Lattner
ac8d4d9d59 Fix bug that was bugging bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4953 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 21:27:16 +00:00
Chris Lattner
342d1826fb Remove dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4952 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 18:42:13 +00:00
Chris Lattner
61eadb0255 Check in an old testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4951 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 17:08:07 +00:00
Chris Lattner
90c5fdb20a Give better error message if two passes of the same argument are registered
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4950 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 04:41:22 +00:00
Vikram S. Adve
44974dcdeb Stronger assertion in getNodeId(): node id must exist in the map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4949 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:19:07 +00:00
Vikram S. Adve
bac0622ef9 Two bug fixes:
(1) Make entries for Constant values in the ScalarMap.
(2) Set MOD bit for the node pointed to by the
    argument of a free instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4948 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:17:10 +00:00
Vikram S. Adve
2b7a92c72f Fix several related bugs in DSNode::mergeWith() caused by the
fact that the incoming nodes may be merged away at intermediate
steps.  Use an extra level of indirection via DSNodeHandles
to track the nodes being merged.  All this now happens in a
static helper function MergeNodes().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4947 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:15:21 +00:00
Vikram S. Adve
10afe022c5 Added static helper method MergeNodes(). See DataStructure.cpp for more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4946 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:10:17 +00:00
Vikram S. Adve
1818275956 Bug fix in operator==() and in method fini().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4945 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 15:02:22 +00:00
Brian Gaeke
d474e9cdce Implement a lot of cast functionality (no FP or 64)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4944 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 10:49:33 +00:00
Chris Lattner
196cee2dba Make sure to print indirect node again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4943 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 06:40:00 +00:00
Chris Lattner
28c2d409a5 Fix bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4942 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 04:42:16 +00:00
Chris Lattner
23ffa4a488 Allow printing partially constructed bitsets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4941 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 04:42:10 +00:00
Chris Lattner
cdbfa422cd Don't delete values that may still be referenced!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4940 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 04:02:48 +00:00
Chris Lattner
ade0de9123 Tighten up assertion checking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4939 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:55:39 +00:00
Chris Lattner
698e9ce568 Only build jello when compiling on X86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4938 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:53:40 +00:00
Chris Lattner
5d7a579842 Fix to make jello compile on Sparc even though it won't run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4937 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:52:51 +00:00
Chris Lattner
c35679b45f Export a new ARCH variable indicating what platform is being compiled
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4936 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 03:45:20 +00:00
Chris Lattner
c736d56562 Fix bug: 2002-12-05-MissedConstProp.ll pointed out by Casey Carter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4935 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-05 22:41:53 +00:00
Chris Lattner
c41ab22492 New testcase pointed out by Casey Carter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4934 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-05 22:25:47 +00:00
Vikram S. Adve
c102cb7359 Cute bug fix: when moving links from N to this, some links could have
been missed if node *this got merged away due to recursive merging!
Also, links were not moved correctly if a node is collapsed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4933 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-05 17:17:26 +00:00
Brian Gaeke
86764d778e Target/X86/Printer.cpp: Add sizePtr function, and use it instead of
" <SIZE> PTR " string when emitting assembly.

Target/X86/X86InstrInfo.def: Tidy up a bit:
 Squashed everything down to 118 chars wide, wrapping lines so that
 comment is at the same point on each line. Rename "NoImpRegs" as
 "NoIR". (most instructions have NoImpRegs twice on a line, so this
 saves 10 columns).

 Also, annotate various instructions with flags for size of memory operand.
  (MemArg16, MemArg32, MemArg64, etc.)

Target/X86/X86InstrInfo.h: Define flags for size of memory operand.
 (MemArg16, MemArg32, MemArg64, etc.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4932 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-05 08:30:40 +00:00
Misha Brukman
e78dba871b Return 0 to make it into a fully-functioning "Hello, World!" test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4931 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:58:41 +00:00
Misha Brukman
dd46e2a81d Added code generation for function prologues and epilogues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4930 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:58:08 +00:00
Misha Brukman
2adb3959f6 Implemented functions for emitting prologues and epilogues;
removed EBP from the list of callee-saved registers (it isn't one).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4929 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:57:03 +00:00
Misha Brukman
1f283ef3e5 Added push and pop instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4928 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:56:26 +00:00
Misha Brukman
9da4d263b9 Added prototypes for emitting prologue and epilogue for function code
generation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4927 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:55:56 +00:00
Chris Lattner
4461f54bce Fix testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4926 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:51:44 +00:00
Chris Lattner
4fa1acc945 Fix handling of function calls that return void
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4925 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:50:28 +00:00
Chris Lattner
a324364f04 Implement initial support for return values from call instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4924 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 23:45:28 +00:00
Misha Brukman
06f8aecc88 Fun arithmetic with iterators aimed at fixing a bug: inserting instructions
after the *current* instruction while keeping the iterator in the same
'logical' place.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4923 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 19:24:45 +00:00
Misha Brukman
0d2cf3a533 Adjust the stack pointer after a function call, proportional to the number of
arguments pushed onto the stack.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4922 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 19:22:53 +00:00
Misha Brukman
a17a2ac727 Added instructions to add/subtract imm32 to/from a reg32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4921 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 19:15:22 +00:00
Chris Lattner
67c2639ced New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4920 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:35:11 +00:00
Chris Lattner
ac573f61b4 Fix bogus assertion failures
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4919 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:32:52 +00:00
Chris Lattner
6d66944388 Avoid bad assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4918 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:28:40 +00:00
Chris Lattner
93689114a5 Remove think-o assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4917 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:18:30 +00:00
Chris Lattner
d6c4cfab54 Avoid crashing on Arguments, just silently miscompile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4916 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:15:34 +00:00
Chris Lattner
9f1bd80102 Add main functions to benchmarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4915 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-04 17:15:07 +00:00