Commit Graph

6860 Commits

Author SHA1 Message Date
Chris Lattner 6545a75e93 Improve the make rule
llvm-svn: 6948
2003-06-28 22:16:59 +00:00
Chris Lattner fa578d0eb4 Propagate globals graph from the local to bu to td globals graphs. This
fixes bug: DSGraph/buglobals.ll

llvm-svn: 6947
2003-06-28 22:14:55 +00:00
Chris Lattner c7ba69d8b4 Drop references to globals who do exist in the globals graph, but are never
read or written to.  Keep track of how many times this happens.  This should
be good for deleting things like references to type information in C++ classes

llvm-svn: 6946
2003-06-28 22:10:58 +00:00
Chris Lattner 856a6cbb80 Avoid double negatives
llvm-svn: 6945
2003-06-28 21:58:28 +00:00
Chris Lattner fb9e684f5c Add new DSGraph::ScalarMapTy typedef to avoid pulling representation issues
into callers of getScalarMap

llvm-svn: 6944
2003-06-28 21:57:13 +00:00
Chris Lattner 1ad22dedd1 Add new 'isComplete' method
llvm-svn: 6943
2003-06-28 21:56:42 +00:00
Chris Lattner 111065409a New testcase
llvm-svn: 6942
2003-06-28 21:56:22 +00:00
Chris Lattner 2890f428a9 New pass to perform DSA based optimizations. Initially we just support turning
globals into constants if we can prove it's safe

llvm-svn: 6941
2003-06-28 21:54:55 +00:00
Chris Lattner 58626c9be7 New makefile for Dsgraph tests
llvm-svn: 6940
2003-06-28 21:16:38 +00:00
Chris Lattner 34a4ddae0f Add DSGraph to the tests
llvm-svn: 6939
2003-06-28 21:16:27 +00:00
Chris Lattner d401f39872 Avoid printing out huge structures or arrays if they are just filled with zeros
llvm-svn: 6938
2003-06-28 20:08:24 +00:00
Chris Lattner 7969401e16 Add support for a new zeroinitializer token which can be used to get rid of
huge arrays of zero initialized values

llvm-svn: 6937
2003-06-28 20:01:34 +00:00
Chris Lattner 37d4db2e7b Add test for new zeroinitializer token
llvm-svn: 6936
2003-06-28 20:01:03 +00:00
Chris Lattner fd7016a8ba jmp_buf is really a pointer type that is passed around...
llvm-svn: 6935
2003-06-28 19:29:34 +00:00
Chris Lattner 27223935d7 Add support for the Invoke instruction!
llvm-svn: 6934
2003-06-28 17:53:05 +00:00
Chris Lattner 2d52dd12b2 New testcase for invoke support
llvm-svn: 6933
2003-06-28 17:52:38 +00:00
Chris Lattner a80de5a3be Preserve compatibility with non-gcc compilers
llvm-svn: 6932
2003-06-28 17:15:12 +00:00
Chris Lattner 90921a7eee Fix bug: CBackend/2003-06-28-LinkOnceGlobalVars.llx
llvm-svn: 6931
2003-06-28 17:08:36 +00:00
Chris Lattner de025f3220 New testcase
llvm-svn: 6930
2003-06-28 17:07:23 +00:00
Chris Lattner fbfcf01b98 Allow the inlining limit to be controlled from the command line!
llvm-svn: 6929
2003-06-28 15:57:04 +00:00
Chris Lattner 719c715639 Add support for 'unsigned' command line arguments
llvm-svn: 6928
2003-06-28 15:47:20 +00:00
John Criswell abebb9af11 Added code to the clean rule that deletes files placed in the source directory.
These files interfer with a second build attempt.

llvm-svn: 6927
2003-06-27 17:03:20 +00:00
John Criswell 8224df947c Added the OPTIONAL_DIRS variable for specifying optional directories to build.
llvm-svn: 6926
2003-06-27 16:58:44 +00:00
Chris Lattner 8bf2e04b87 New testcase that crashes the cfe
llvm-svn: 6925
2003-06-27 02:37:53 +00:00
Brian Gaeke c1e4ee0f50 Nice tasty llc fixes. These should fix LLC for x86 for everything in
SingleSource except oopack and Oscar.  (Sorry, Oscar.)

include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
 accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
 really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
 target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
 which implicitly use CL, because the assembler needs to see the CL in
 order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
  to name constants in the constant pool for each function instead. This
  avoids keeping state between runOnMachineFunction() invocations, which
  is a no-no. Having MangledGlobals be global is a bogon I'd like to get
  rid of too, but making it a static member of Printer causes link errors
  (why???).
 Make NumberForBB into a member of Printer instead of a global, too.
 Make printOp and printMemReference into methods of Printer.
 X86InstrInfo::print is now Printer::printMachineInstruction, because
  TargetInstrInfo::print is history. (Because of this, we have to qualify
  the names of some TargetInstrInfo methods we call.)
 Print out the ImplicitUses field of any instruction we print that has
  the PrintImplUses bit set.

llvm-svn: 6924
2003-06-27 00:00:48 +00:00
Brian Gaeke 92aefe564a Here are the notes from our Reoptimizer meetings.
llvm-svn: 6923
2003-06-26 20:37:42 +00:00
Chris Lattner 5a42f1b49e Modify script to support checkins on branches
llvm-svn: 6921
2003-06-26 20:11:07 +00:00
Brian Gaeke 4ab222142f Number constants from constant pool as CPIf_i where f is the function index
and i is the constant pool index.

llvm-svn: 6920
2003-06-26 18:02:30 +00:00
Chris Lattner d104cdb0ba Add a testcase to ensure that ctor/dtor attributes work in C
llvm-svn: 6919
2003-06-26 14:56:36 +00:00
Chris Lattner eaae578820 Add support to globaldce for deleting dead function prototypes
llvm-svn: 6918
2003-06-26 05:41:18 +00:00
Chris Lattner fd5d323ea9 When internalizing global ctor/dtor list, also mark it constant. This is gross, but
until DSA is working all of the time and is totally reliable, we do this.

llvm-svn: 6917
2003-06-26 05:30:40 +00:00
Chris Lattner c8a619313a Run the simplify CFG pass after instcombine which has the effect of deleting
ALL of the global ctor/dtor stuff if it is not used!

llvm-svn: 6916
2003-06-26 05:29:50 +00:00
Chris Lattner b254fe29d2 New variable which is just the GCCLD tool
llvm-svn: 6914
2003-06-26 05:28:00 +00:00
Chris Lattner 4ede64e304 Implement more aggressive folding of constant GEP instructions
llvm-svn: 6913
2003-06-26 05:22:45 +00:00
Chris Lattner 0f1d8a3947 Add support for elimination of load instruction from global constants
llvm-svn: 6912
2003-06-26 05:06:25 +00:00
Chris Lattner 8c4b0d05ee add tests for elimination of loads
llvm-svn: 6911
2003-06-26 05:05:51 +00:00
Chris Lattner e4b7d467f8 Move the instcombine pass before globaldce, so that if globals are made dead by instcombine, that they can be deleted.
llvm-svn: 6910
2003-06-26 04:32:31 +00:00
Chris Lattner 0fe5e45ee9 Don't register the destructors if the list is empty
llvm-svn: 6909
2003-06-26 04:20:38 +00:00
Brian Gaeke dda8abec9b Integrate the C writer's name mangler.
llvm-svn: 6908
2003-06-25 22:00:39 +00:00
Brian Gaeke 25e766aca5 First draft of X86 LLC backend. This should be OK for small programs like
Shootout, but it has some issues with bigger programs. Work in progress.

llvm-svn: 6907
2003-06-25 18:01:07 +00:00
Chris Lattner 63912f05ab Add test for instcombine -1*X -> -X
llvm-svn: 6905
2003-06-25 17:10:34 +00:00
Chris Lattner 35236d8477 Instcombine: X * -1 -> -X
llvm-svn: 6904
2003-06-25 17:09:20 +00:00
Chris Lattner 81d75b7cfc Fix bug: LevelRaise/2003-06-25-ExprAnalysis.ll
llvm-svn: 6903
2003-06-25 17:09:03 +00:00
Chris Lattner 930c8595f8 New testcase
llvm-svn: 6902
2003-06-25 17:08:34 +00:00
Chris Lattner b396afde26 Fix bug: Mem2Reg/2003-06-26-IterativePromote.ll
llvm-svn: 6901
2003-06-25 14:58:56 +00:00
Chris Lattner fec65d7526 New testcase
llvm-svn: 6900
2003-06-25 14:55:30 +00:00
Chris Lattner 0b3def4d49 Remove completed tasks
llvm-svn: 6899
2003-06-25 14:31:06 +00:00
Joel Stanley fbb9ab4913 - Fixed name mangling conditions to handle 'linkonce' linkage type. In
particular, name mangling for GlobalValues only occurs when the linkage type is
internal or when the name must be mangled to avoid a collision.  See comments in
CWriter::getValueName for more information.

- 'inline' keyword is now emitted for functions with 'linkonce' linkage type.

- Fixed typos.

llvm-svn: 6898
2003-06-25 04:52:09 +00:00
Chris Lattner 2599356122 Try to run cleanups even if nothing was modified in the preview passes
llvm-svn: 6897
2003-06-25 04:13:52 +00:00
Chris Lattner 0192b72fde Run dead arg elimination, and tell it that it's ok to hack up non-internal functions
llvm-svn: 6896
2003-06-25 04:13:36 +00:00