Commit Graph

12899 Commits

Author SHA1 Message Date
Reid Spencer b703e0b32f Podified documentation for the llvm-bcanalyzer tool (nee llvm-abcd).
llvm-svn: 14556
2004-07-02 03:44:14 +00:00
Reid Spencer 5780de6219 Name Change: llvm-abcd -> llvm-bcanalyzer
llvm-svn: 14555
2004-07-02 03:22:53 +00:00
Misha Brukman 24a0371791 * Follow the PowerPC convention of leaving 24 bytes for linking on the stack.
* Also leave space for spilling integer registers (this should be calculated)

llvm-svn: 14554
2004-07-01 21:35:00 +00:00
Misha Brukman d028593c6e * Get rid of constant-expr handling code: we use the ConstantExpr lowering pass
* Use the SetCC handling code in the format of Brian's V8
* Add FIXMEs where calls to functions are being made without adding them to the
  Module first... they cause missing symbols at assembly-time.

llvm-svn: 14553
2004-07-01 21:34:10 +00:00
Misha Brukman 1f3a7f0255 Wrap long line
llvm-svn: 14552
2004-07-01 21:27:59 +00:00
Misha Brukman d575287551 * Do not allocate r0 as we use it indiscriminantly in the instr selector.
* Do not define CR register class because we don't (yet) have the i4 type

llvm-svn: 14551
2004-07-01 21:24:50 +00:00
Misha Brukman fcc59bd0e0 Check if operand has an allocated reg before requesting it.
llvm-svn: 14550
2004-07-01 21:09:12 +00:00
Misha Brukman 20709326a1 * Doxygenify comments
* Tabs-to-spaces

llvm-svn: 14549
2004-07-01 20:42:00 +00:00
Chris Lattner 80b3aeafc0 Fix broken links
llvm-svn: 14548
2004-07-01 20:41:43 +00:00
Brian Gaeke d4ba0a5721 bug. point. pod.
llvm-svn: 14547
2004-07-01 20:29:08 +00:00
Chris Lattner 5b20870830 Add much better assertion checking for load and store insts.
Contributed by Vladimir Merzliakov!

llvm-svn: 14546
2004-07-01 20:23:52 +00:00
Chris Lattner 153cd4ed30 Move init methods out of line to enable better assertions, contributed
by Vladimir Merzliakov!

llvm-svn: 14545
2004-07-01 20:22:31 +00:00
Brian Gaeke 3785ca3df3 bugpoint command guide has been designated a full-fledged "doc".
llvm-svn: 14544
2004-07-01 20:10:40 +00:00
Brian Gaeke b8a340a3bf abcd pod document
llvm-svn: 14543
2004-07-01 20:07:15 +00:00
Brian Gaeke cc7cafb371 llvm-nm pod format man page.
llvm-svn: 14542
2004-07-01 19:40:36 +00:00
Brian Gaeke 163c87fc32 Make this pass use a more specific debug message than "Processing:".
llvm-svn: 14541
2004-07-01 19:27:10 +00:00
Misha Brukman fa3561c603 Fix grammar: remove `our' as it no longer makes sense.
llvm-svn: 14540
2004-07-01 18:34:46 +00:00
Chris Lattner 8a9d11b1bc This is more of an "llvm team" thing by now
llvm-svn: 14539
2004-07-01 18:25:59 +00:00
Misha Brukman 0667a12dcd llvm-db is in alpha stage, this document is a placeholder.
llvm-svn: 14538
2004-07-01 18:00:42 +00:00
Misha Brukman 3121ce052f Fix links to llvmgcc and llvmgxx
llvm-svn: 14537
2004-07-01 17:59:53 +00:00
Misha Brukman ae8b03362c gccld enters the Hall of POD.
llvm-svn: 14536
2004-07-01 17:53:27 +00:00
Misha Brukman 082fe484ed Make the text of the link to llvmgxx.html more appropriate: `llvmg++'.
llvm-svn: 14535
2004-07-01 17:52:58 +00:00
Chris Lattner 18a08e702d Handle targets where alignment can be bigger than the size of the data.
Contributed by Vladimir Prus!

llvm-svn: 14534
2004-07-01 17:32:59 +00:00
Misha Brukman 3802014c51 Fix grammar in Stacker doc description.
llvm-svn: 14533
2004-07-01 17:20:53 +00:00
Misha Brukman 61a747f60b Mention llvm-abcd, point out difference between it and `analyze'.
llvm-svn: 14532
2004-07-01 16:59:05 +00:00
Misha Brukman b410763f25 Change format of CommandGuide index page to look like other docs.
llvm-svn: 14531
2004-07-01 16:04:49 +00:00
Misha Brukman 3eef5d4715 * `The' isn't necessary in front of LLVM
* Wrap long line

llvm-svn: 14530
2004-07-01 15:33:24 +00:00
Misha Brukman 6836eaed42 Fresh from the LLVM baker's oven: opt and analyze pods.
llvm-svn: 14529
2004-07-01 15:25:04 +00:00
Misha Brukman dfb5a7b925 Add llvm-g++ and llvm-gcc pod documentation.
llvm-svn: 14528
2004-07-01 14:51:26 +00:00
Misha Brukman 81e616976f Fix link to llvmgcc.
llvm-svn: 14527
2004-07-01 14:47:05 +00:00
Misha Brukman 0c7ed6e335 Make links relative instead of absolute.
llvm-svn: 14525
2004-07-01 13:52:35 +00:00
Chris Lattner 9a60c532a8 Make sure that we destroy the MBB's, with all of their instructions, before
any other data structures

llvm-svn: 14524
2004-07-01 06:29:07 +00:00
Chris Lattner c85535c8be Now that MachineFunction/MachineBasicBlock keep a mapping of blocks to ID #'s
use them instead of a local LiveVariables numbering

llvm-svn: 14523
2004-07-01 06:15:32 +00:00
Chris Lattner 0c26b9cbbb Now that we have happy mappings from MBBs->numbers, use them instead of keeping
a LV private map

llvm-svn: 14522
2004-07-01 06:14:57 +00:00
Chris Lattner 449af59c7e Change MBB autonumber a bit to get the reverse mapping as well as a forward
mapping

llvm-svn: 14521
2004-07-01 06:02:27 +00:00
Chris Lattner a47455dbd3 Instance var no longer exists
llvm-svn: 14520
2004-07-01 06:02:07 +00:00
Chris Lattner 6b2ac89e78 Change the implementation of the autonumbering for MBB's a bit to provide
the reverse mapping as well as the mapping from MBB->unsigned

llvm-svn: 14519
2004-07-01 06:01:36 +00:00
Chris Lattner 6c375e4926 Start using MBB numbers directly instead of going through the live variables
map.

llvm-svn: 14518
2004-07-01 04:29:47 +00:00
Chris Lattner 7c77fd50e7 Instead of building a private numbering of MBB's use brg's nifty auto-numbering.
Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing.

llvm-svn: 14517
2004-07-01 04:24:29 +00:00
Chris Lattner 5cc223a7e2 Fix testcase
llvm-svn: 14516
2004-07-01 04:11:35 +00:00
Chris Lattner 8785e03d7c -debug option does not exist in a release build
llvm-svn: 14515
2004-07-01 04:10:15 +00:00
Chris Lattner eee347209f Fix testcase. For some reason this was failing only with a release build and
not with a debug build?  Rather testrunner only caught it in that case.

llvm-svn: 14514
2004-07-01 04:09:14 +00:00
Reid Spencer 209ae4bd6d Added a command page for the llvm-abcd tool.
llvm-svn: 14513
2004-07-01 02:32:42 +00:00
Misha Brukman b9125f462d Fix indentation to be 2 spaces.
llvm-svn: 14512
2004-06-30 22:11:03 +00:00
Misha Brukman 0648a903c7 * Coalesce the handy CALL* alias opcodes with the standard ones
* Congregate more branch-and-link opcodes together
* Mark FP, CPR, and special registers as volatile across calls

llvm-svn: 14511
2004-06-30 22:00:45 +00:00
Misha Brukman 299fa1b147 * Allow more registers to be allocated from the general register pool
* Define the condition register class

llvm-svn: 14510
2004-06-30 21:54:50 +00:00
Misha Brukman fee5a22f8a * Inquire about the number of operands from the instruction directly
* Only check for a register if we are sure the instruction has one allocated

llvm-svn: 14509
2004-06-30 21:54:12 +00:00
Misha Brukman 04f07b4589 visitSetCondInst() takes a parameter of type `SetCondInst'
llvm-svn: 14508
2004-06-30 21:47:40 +00:00
Jonathan Manton aff4a6a11b Fixed the tutorial to indicate that we needed to use the llvm namespace.
llvm-svn: 14507
2004-06-30 18:10:30 +00:00
Misha Brukman 2b9106f808 Always assume a function may have calls because the printer may add `bl' to get
the PC in a code sequence for global variables.

llvm-svn: 14506
2004-06-30 00:09:12 +00:00
Misha Brukman 351646f31e * Don't save LR when outputting globals: it's already saved on the stack once
for the function
* Registers aren't necessarily sequential wrt their enums, don't rely on it
  when emitting function arguments into sequential registers
* Remove X86-specific comments about AL/BL/AH/BH/EDX/etc
* Add an abort() for an unimplemented signed right shift
* The src operand for a GEP was never emitted!  Fixed.
* We can skip zero-valued GEP indices as they are no-ops.

"Hello, World!" now works.

llvm-svn: 14505
2004-06-29 23:45:05 +00:00
Misha Brukman c794feab51 * Stop using BBNumbering, we don't really need it
* Only increment labelNumber once, because it's used by both Load{hi,lo}Addr
* There is no .bss section on PowerPC
* Use .align 2 instead of other random numbers

llvm-svn: 14504
2004-06-29 23:40:57 +00:00
Reid Spencer b1076c4231 Fix order and line length of fixed bugs.
llvm-svn: 14503
2004-06-29 23:39:24 +00:00
Misha Brukman d409669877 Set up the prologue and epilogue to be more like the manual and GCC output.
llvm-svn: 14502
2004-06-29 23:38:26 +00:00
Misha Brukman 7454c6fff0 * Use LA instead of LWZ for LoadLoAddr
* Specify the isCall bit and caller-save registers for some call instrs

llvm-svn: 14501
2004-06-29 23:37:36 +00:00
Misha Brukman 5459dfb47b Only allocate non-volatile registers R13-31 (for now).
llvm-svn: 14500
2004-06-29 23:35:32 +00:00
Reid Spencer 938be23e90 Implement verification feature.
Ensure output occurs even in the face of an error.

llvm-svn: 14499
2004-06-29 23:34:27 +00:00
Reid Spencer 002dd98ce0 The analyzer code now lives in the bcreader library. The bcanalyzer lib
is no more.

llvm-svn: 14498
2004-06-29 23:33:31 +00:00
Misha Brukman 4efe3da794 Lower ConstantExpressions before the code generator.
llvm-svn: 14497
2004-06-29 23:33:20 +00:00
Reid Spencer fddebf7ff2 Remove files no longer needed. ConstantReader and InstructionReader were
integrated into Reader. Parser.* was just a bad idea. AnalyzerInternals.h
is no longer needed. ReaderPrimitives.h was integrated into Reader.h and
Reader.cpp. Dumper.cpp was integrated into Analyzer.cpp. ReaderInternals.h
became Reader.h. AnalyzerWrappers.cpp was integerated into
ReaderWrappers.cpp

llvm-svn: 14496
2004-06-29 23:32:41 +00:00
Reid Spencer f4ec6383c0 This is a slimming down of the previous ReaderInternals.h that just
declares the BytecodeReader class.

llvm-svn: 14495
2004-06-29 23:31:01 +00:00
Reid Spencer 284b7c7174 MAJOR REWRITE.
- stop passing Buf/BufEnd to every function (now member vars)
- internalize things that used to be in a header file that no one else
  included/needed.
- Remove defunct BCR_TRACE lines
- Standardize error handling with the PARSE_ERROR macro.
- Integrate ConstantReader.cpp and InstructionReader.cpp and reorgnize
  the definition order so that gcc has a chance at optimizing this module
- Standardize case and style of method names.
- Eliminate unneeded header files
- Prepare for Type != Value (bug122) change by splitting Types into their
  own data structures.
- Implement the BytecodeHandler interface calls.
- Provide default implementation of BytecodeHandler interface.

llvm-svn: 14494
2004-06-29 23:29:38 +00:00
Reid Spencer 891cb9d925 Adjustments to allow Bytecode Reading to support the BytecodeHandler
interface which is called by the reader if a BytecodeHandler is provided.

llvm-svn: 14493
2004-06-29 23:24:14 +00:00
Reid Spencer 351f6bf714 Merge Dumper.cpp and AnalyzerWrappers.cpp into this file. Also, adjust the
dumping facility to produce useful output.

llvm-svn: 14492
2004-06-29 23:23:12 +00:00
Reid Spencer c7b9419add Analyzer moved to ../Reader directory.
llvm-svn: 14491
2004-06-29 23:21:53 +00:00
Reid Spencer 75923a4f93 Remove newly defunct Analyzer directory.
llvm-svn: 14490
2004-06-29 23:21:16 +00:00
Reid Spencer 5a45200992 Provide support for the BytecodeHandler interface which will be called by
the bcreader if one is supplied to the bytecode reader's interface
functions.

llvm-svn: 14489
2004-06-29 23:20:03 +00:00
Reid Spencer 53213ce347 Fix include guard
Adjust comments
Make handlers for constants provide useful information.

llvm-svn: 14488
2004-06-29 23:18:52 +00:00
Reid Spencer d190ecc669 Adjust comments to match code.
Allow analysis to return the module created by the bcreader.

llvm-svn: 14487
2004-06-29 23:17:34 +00:00
Misha Brukman 887fd23dfc Fix associativity of parameters to assert(): now it actually makes sense.
llvm-svn: 14483
2004-06-29 19:43:20 +00:00
Misha Brukman c968b87d94 Convert tabs to spaces.
llvm-svn: 14482
2004-06-29 19:28:53 +00:00
Misha Brukman 802403723b * Fix saving LR in function prologue
* Adjust epilogue restore sequence to match the PowerPC documentation

llvm-svn: 14480
2004-06-29 17:14:42 +00:00
Misha Brukman 811f5c2c4c Assembly syntax/comment fixes by Nate Begeman.
llvm-svn: 14479
2004-06-29 17:13:26 +00:00
Vikram S. Adve 1097ed8467 Restoring this file.
llvm-svn: 14478
2004-06-29 14:20:27 +00:00
Chris Lattner c5f9b356af The code generator should work with unreachable blocks. If not, then this
is a bug that should be fixed in the code generator, not papered over with
the simplifycfg pass.  Eliminating this makes bugpoint much more useful

llvm-svn: 14477
2004-06-29 07:20:16 +00:00
Chris Lattner e6e1b48023 I believe that the code generator now properly handles dead basic blocks. If not,
this is a bug, and should be fixed.

llvm-svn: 14476
2004-06-29 07:17:12 +00:00
Chris Lattner 4cda555346 In line with the previous patch, do not assert out if analyzing a dead basic block.
llvm-svn: 14475
2004-06-29 07:16:23 +00:00
Chris Lattner 49b34f3f51 Do not dereference end iterators. It hurts when you do that.
llvm-svn: 14474
2004-06-29 06:56:51 +00:00
Chris Lattner 1a920d49f6 Fix a regression from r1.224. In particular, codegen a cast from double ->
float as a truncation by going through memory.  This truncation was being
skipped, which caused 175.vpr to fail after aggressive register promotion.

llvm-svn: 14473
2004-06-29 00:14:38 +00:00
Misha Brukman 15c10883ff Can't print out machine code before it is constructed.
llvm-svn: 14472
2004-06-28 21:16:57 +00:00
Chris Lattner 9475b96a3c document new pass
llvm-svn: 14471
2004-06-28 19:19:47 +00:00
Misha Brukman 3aad397726 Fix the assembly opcode on LOADLoAddr, courtesy of Nate Begeman.
llvm-svn: 14470
2004-06-28 18:27:08 +00:00
Misha Brukman 767fa11096 Set isBranch and isTerminator bits on all branch instructions.
llvm-svn: 14469
2004-06-28 18:23:35 +00:00
Misha Brukman 2f0cda8b2a Fix loading and storing PC-relative static variables, courtesy of Nate Begeman.
llvm-svn: 14468
2004-06-28 18:20:59 +00:00
Misha Brukman 75985d725c No need to generate a lazy-linking stub for internal functions, they can be
resolved by the static linker.

llvm-svn: 14467
2004-06-28 18:03:37 +00:00
Misha Brukman 8455e0177b Do not set the `link' bit when branching to the first BB of a function, as it
will cause an infinite loop.  The link bit is only used for calling functions.

llvm-svn: 14466
2004-06-28 17:57:40 +00:00
Chris Lattner 3337c82745 Add a link to the CFE build instrs next to the CFE download instructions
llvm-svn: 14465
2004-06-28 17:14:01 +00:00
Chris Lattner 7d60ee3dcf Building the C FE is a user-level process
llvm-svn: 14464
2004-06-28 17:11:10 +00:00
Misha Brukman 9cb88aae40 Fix spacing around function arguments.
llvm-svn: 14463
2004-06-28 15:53:27 +00:00
Chris Lattner 26dff501a4 Initial checkin of a simple mod/ref analysis for global variables. This is
still overly conservative and uses very simple data structures, but it is a
start, and allows elimination of a lot of loads.

llvm-svn: 14462
2004-06-28 06:33:13 +00:00
Chris Lattner 8f12ca4d92 Add new header
llvm-svn: 14461
2004-06-28 06:31:26 +00:00
Chris Lattner 3b11d3b294 Remove unused file
llvm-svn: 14460
2004-06-28 00:46:58 +00:00
Chris Lattner 30a2e1725f Remove dead file
llvm-svn: 14459
2004-06-28 00:46:54 +00:00
Chris Lattner 9958350f42 Bad passes are gone
llvm-svn: 14458
2004-06-28 00:44:45 +00:00
Chris Lattner 924882f775 These passes are long dead/obsolete. They never worked in the first place
and are a maintenence burden.  Nuke nuke nuke

llvm-svn: 14457
2004-06-28 00:44:18 +00:00
Chris Lattner 356b067d69 Remove two dead passes
llvm-svn: 14456
2004-06-28 00:43:25 +00:00
Chris Lattner 9b55c11c56 Moved IPModRef out of the public include dir
llvm-svn: 14455
2004-06-28 00:41:23 +00:00
Chris Lattner 8676ad8aee Move file to lib/Analysis/DataStructure
llvm-svn: 14454
2004-06-28 00:40:43 +00:00
Chris Lattner 32c79788cc Move DependenceGraph.* to lib/Analysis/DataStructure
llvm-svn: 14452
2004-06-28 00:32:33 +00:00
Chris Lattner 317f89301b Moved to lib/analysis/datastructure
llvm-svn: 14451
2004-06-28 00:30:29 +00:00
Chris Lattner 135fb4be7c Moving to lib/Analysis/DataStructure
llvm-svn: 14450
2004-06-28 00:29:42 +00:00
Chris Lattner e0e1db012c Moved to lib/Analysis/DataStructure
llvm-svn: 14449
2004-06-28 00:27:34 +00:00
Chris Lattner dfe8056225 Move MemoryDepAnalysis.h into lib/Analysis/DataStructure
llvm-svn: 14448
2004-06-28 00:27:16 +00:00
Chris Lattner b1775590e4 Moved to lib/Analysis/DataStructure
llvm-svn: 14447
2004-06-28 00:20:39 +00:00
Chris Lattner f6729a3bcc Move PgmDependenceGraph.h out of the public include hierarchy
llvm-svn: 14446
2004-06-28 00:20:04 +00:00
Brian Gaeke 81f67f60ec Allow saving and restoring of double and float registers.
Allow copying of float registers.

llvm-svn: 14445
2004-06-27 22:59:56 +00:00
Brian Gaeke b3d33c7994 Add FITOS, FITOD, and F{ADD,SUB,MUL,DIV}{S,D}.
llvm-svn: 14444
2004-06-27 22:53:56 +00:00
Chris Lattner 6e07936ed2 Implement InstCombine/add.ll:test21
llvm-svn: 14443
2004-06-27 22:51:36 +00:00
Chris Lattner 0da061fa1e new testcase
llvm-svn: 14442
2004-06-27 22:51:19 +00:00
Brian Gaeke 187ff172b6 Support printing constant pool indices.
If we see an "unknown operand", abort so it's easier to fix it.

llvm-svn: 14441
2004-06-27 22:50:44 +00:00
Brian Gaeke c81b5a5331 Trim whitespace.
Support cast of ints (and narrower) to float and double.
Support cast double to double (using load and store).
Abort if we see a CallInst or SetCondInst with long/fp args, instead
of producing bad code.
Support add, sub, mul, div of float and double.

llvm-svn: 14440
2004-06-27 22:47:33 +00:00
Chris Lattner 59b2c40286 Now that the SparcV9 specific MachineCodeForInstruction class uses it's own
map on the side, Instruction no longer has to be Annotable.  This reduces
the size of the Instruction class by another 4 bytes (on a 32-bit system).

llvm-svn: 14439
2004-06-27 18:57:34 +00:00
Chris Lattner d22d9cb800 Do not find these ugly sparc-specific objects by using the annotation API on
instructions.  Instead, keep a map of instructions -> MCFI objects in the
already sparc-specific class MachineFunctionInfo.  This will slow down the
sparc backend a bit, but it does not penalize the rest of LLVM!

llvm-svn: 14438
2004-06-27 18:52:17 +00:00
Chris Lattner 2b04d102f0 This class is no longer an annotation
llvm-svn: 14437
2004-06-27 18:50:49 +00:00
Chris Lattner 3a3bd6f29c Add a map of MachineCodeForInstruction objects to MachineFunctionInfo
llvm-svn: 14436
2004-06-27 18:50:30 +00:00
Chris Lattner dd7a707897 Fold iType into Value::VTy
llvm-svn: 14435
2004-06-27 18:38:48 +00:00
Chris Lattner a7c0a11647 Eliminate the Instruction::iType field, folding it into the Value::VTy field.
This reduces the size of the instruction class by 4 bytes, and means that
isa<CallInst>(V) (for example) only needs to do one load from memory instead
of two.

llvm-svn: 14434
2004-06-27 18:38:24 +00:00
Chris Lattner 8e55b75913 Get rid of Annotable's vtable. If anyone deletes an object through an Annotable*,
they get what they deserve.

This reduces the size of Instruction & Function by 4 bytes each.

llvm-svn: 14433
2004-06-27 18:36:39 +00:00
Chris Lattner 6b62f225f6 Make it obvious that this file is bad bad bad
llvm-svn: 14432
2004-06-27 18:21:20 +00:00
Chris Lattner 60a29a77aa User ctor is now inline
llvm-svn: 14431
2004-06-27 18:01:38 +00:00
Chris Lattner d2f55b69e0 Make ctor inline, change ValueTy ->unsigned
llvm-svn: 14430
2004-06-27 18:01:15 +00:00
Chris Lattner f758330347 Consider anything with a ValueType that is >= Instruction to be an instruction
llvm-svn: 14429
2004-06-26 20:51:50 +00:00
Chris Lattner d0b0b454e5 Instancevar was renamed
llvm-svn: 14428
2004-06-26 20:33:39 +00:00
Chris Lattner 4a9134ecac Rearrange some code.
llvm-svn: 14427
2004-06-26 20:33:27 +00:00
Chris Lattner 80d2d53fbf Don't call getValueType directly. the LLVM optimizer will turn it into the same code anyway :)
llvm-svn: 14426
2004-06-26 19:40:40 +00:00
Chris Lattner 6fb22cd7ef There is no reason to print ValueType here
llvm-svn: 14425
2004-06-26 19:36:34 +00:00
Chris Lattner 74e2acfcdd Simplify code
llvm-svn: 14424
2004-06-26 19:31:26 +00:00
Chris Lattner f11b67bb8f Hey, why not just make 'new ReturnInst(BB)' DTRT?
llvm-svn: 14422
2004-06-25 23:10:30 +00:00
Chris Lattner 0c8053cace new ReturnInst(BB) does not "do the right thing". Add an assert to catch it
sooner rather than later.

llvm-svn: 14421
2004-06-25 23:06:57 +00:00
Chris Lattner 3c53efa48b Add credits entry
llvm-svn: 14420
2004-06-25 21:00:10 +00:00
Chris Lattner 9a844696f9 Fix relative links for nightly testers not hosted on llvm.cs.
Patch contributed by Vladimir Merzliakov!

llvm-svn: 14419
2004-06-25 20:57:19 +00:00
Chris Lattner 10247b13c0 Write .bc files to binary ostreams. This shouldn't change anything on unix,
but allows us to generate valid code on hosts (like windows) that do newline
translation for text files.

llvm-svn: 14418
2004-06-25 20:54:43 +00:00
Chris Lattner 4ba8a8d1ef No functionality changes here:
* Some warning fixes for MSVC
  * Minor simplification to the deque scanning code

llvm-svn: 14417
2004-06-25 20:52:10 +00:00
Misha Brukman c52ea2574d Allow debugging machine instrs (by printout) before/after isel and regalloc
llvm-svn: 14416
2004-06-25 19:57:47 +00:00
Misha Brukman 26e36e5758 Combine several if stmts with returns into an if-then-elseif-else chain.
llvm-svn: 14414
2004-06-25 19:24:52 +00:00
Misha Brukman c22fd9a6a5 Do not move any values into registers for a void return (there isn't anything).
llvm-svn: 14413
2004-06-25 19:04:27 +00:00
Misha Brukman b5932a5708 Convert tabs to spaces.
llvm-svn: 14412
2004-06-25 18:45:07 +00:00
Misha Brukman 5dbf760e00 Fix opcode: no immediate in an `or r1, r2, r3' (all registers) instr.
llvm-svn: 14411
2004-06-25 18:36:53 +00:00
John Criswell 726de6f9b0 Removed the interrupt_handler instrinsic section that I accidently added
in my previous commits.  It's not implemented and is out of date.

llvm-svn: 14410
2004-06-25 16:42:50 +00:00
John Criswell bcbb18c7a0 Grammar and punctuation fixes.
llvm-svn: 14409
2004-06-25 16:05:06 +00:00
Misha Brukman c56b66f504 * Be consistent about MachineBB labels and references to them in instr stream
* Use MachineBB's built-in numbering system instead of reinventing one

llvm-svn: 14408
2004-06-25 15:42:10 +00:00
John Criswell 40db33f642 Added missing quote.
llvm-svn: 14407
2004-06-25 15:16:57 +00:00
Misha Brukman a27375832b * Initialize the entire array statically, not member-at-a-time
* Remove x86-specific comment re: intel vs. at&t assembly syntax

llvm-svn: 14406
2004-06-25 15:11:34 +00:00
Misha Brukman 468d9a0087 Fix bug in previous checkin.
llvm-svn: 14405
2004-06-25 14:57:19 +00:00
Misha Brukman 9ff1cda1a8 * Wrap long lines
* Replace silent fall-through FIXME comments with an error to cerr and an abort
* No need to set size of statically initialized arrays

llvm-svn: 14404
2004-06-25 14:50:41 +00:00
Misha Brukman 08b0e61841 Excise X86-specific comments.
llvm-svn: 14403
2004-06-25 14:13:26 +00:00
Misha Brukman 7ce853616d Vladimir Prus also contributed the LowerConstantExprs pass.
llvm-svn: 14402
2004-06-25 13:37:03 +00:00
Chris Lattner 7f4222237d New constant expression lowering pass to simplify your instruction selection needs.
Contributed by Vladimir Prus!

llvm-svn: 14399
2004-06-25 07:48:09 +00:00
Chris Lattner 8b0c935145 New testcase for constant expression lowering pass, contributed by Vladimir Prus!
llvm-svn: 14398
2004-06-25 07:47:13 +00:00
Chris Lattner 5ea1317e3c Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!
llvm-svn: 14397
2004-06-25 07:41:06 +00:00
Brian Gaeke 537851f6e7 Don't try to run qmtests if we fail to build the tree. The qmtests (at
least, on macosx) will spiral out of control instead of failing gracefully.

llvm-svn: 14396
2004-06-25 07:25:28 +00:00
Chris Lattner e67d8400f6 Make sure to link all IPA's into opt, so that it has access to stuff like
anders-aa

llvm-svn: 14395
2004-06-25 05:19:17 +00:00
Chris Lattner f019e346f4 Fix header
llvm-svn: 14394
2004-06-25 04:24:22 +00:00
Reid Spencer 1800529834 - Changed Handler.h -> BytecodeHandler.h
- Fixed some small coding standard compliance issues in BytecodeHandler.h

llvm-svn: 14393
2004-06-25 02:32:27 +00:00
Chris Lattner 6995c9bced Okay, Module have not been known as 'C' for a LONG time now
llvm-svn: 14392
2004-06-25 00:42:23 +00:00
Chris Lattner ccd8ed145a Fix more warnings building with VC++
llvm-svn: 14391
2004-06-25 00:35:55 +00:00
Chris Lattner 6b9598db89 Unbreak the build. tsk tsk
llvm-svn: 14390
2004-06-25 00:18:02 +00:00
Tanya Lattner 23dbc8170c Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.
llvm-svn: 14389
2004-06-25 00:13:11 +00:00
Chris Lattner 521eb8752b fix warnings
llvm-svn: 14388
2004-06-25 00:11:25 +00:00
Misha Brukman 5e3afa0d4c Add option to print out machine code before register allocation.
llvm-svn: 14387
2004-06-24 23:55:01 +00:00
Misha Brukman a79dd915b7 Use DEBUG() guard for printing out debug info.
llvm-svn: 14386
2004-06-24 23:54:05 +00:00
Misha Brukman c45a5a369d Add a `break' in the switch/case statement between the int/fp sections.
llvm-svn: 14385
2004-06-24 23:53:24 +00:00
Misha Brukman a08a2363ec * Lowercase the register names
* Parenthesize assert() expressions correctly
* Fix spacing around for() and if() statements

llvm-svn: 14384
2004-06-24 23:51:00 +00:00
Misha Brukman 3bac9e4430 Add a LowercaseString() utility function, courtesy of brg.
llvm-svn: 14383
2004-06-24 23:38:52 +00:00
Misha Brukman c562342751 * LowercaseString moved to StringExtras.h
* Wrap long line to 80 cols

llvm-svn: 14382
2004-06-24 23:38:20 +00:00
Misha Brukman 842c710028 * Tabs to spaces
* Send an error message to std::cerr before abort()ing

llvm-svn: 14381
2004-06-24 23:19:36 +00:00
Reid Spencer 1c9d4f9678 Definition of the Bytecode Handler interface. Subclasses can override just
the methods they are interested in to perform out-of-band tasks while the
BytecodeReader is constructing a module. Handlers should *not* modify any
of the LLVM IR objects during this process.

llvm-svn: 14380
2004-06-24 23:05:07 +00:00
Misha Brukman f62ee7a11b * Tabs to spaces
* Remove unnecessary parens, braces, clean up code layout

llvm-svn: 14379
2004-06-24 23:04:11 +00:00
Misha Brukman 9adccb6a50 Unindent some more code to be consistent.
llvm-svn: 14377
2004-06-24 22:00:15 +00:00
Misha Brukman 1e057bf1b7 Unindent some code, it only needs 2 spaces.
llvm-svn: 14376
2004-06-24 21:56:15 +00:00
Misha Brukman 29b3dd7d35 In emitting code for a GEP instr, iterate over GEPTypes because there is one
more operand in GEPOps than there are types in GEPTypes: the pointer that is the
first operand of the GEP instruction.

llvm-svn: 14375
2004-06-24 21:54:47 +00:00
Misha Brukman 1c9de4699a * Capitalize `Java'
* Sprinkle hypens liberally
* Fix some grammar in comments

llvm-svn: 14374
2004-06-24 21:47:35 +00:00
Misha Brukman 7d11fbf971 Convert tabs to spaces.
llvm-svn: 14373
2004-06-24 21:31:16 +00:00
Brian Gaeke 27966ba77b Add FSTOD and FDTOS conversion instructions.
llvm-svn: 14372
2004-06-24 21:22:09 +00:00
Brian Gaeke 72490c8d86 Support cast float to float, cast double to float, and cast float to double.
(It's not yet clear how to copy doubles from register to register.)

llvm-svn: 14371
2004-06-24 21:22:08 +00:00
Chris Lattner c4f2252374 Add a section about running the nightly tester proper.
llvm-svn: 14370
2004-06-24 20:53:09 +00:00
Vikram S. Adve 463556f889 This file is unused, and duplicates functionality in TraceValues.cpp.
llvm-svn: 14369
2004-06-24 20:16:22 +00:00
Chris Lattner b9df0c004a etags isn't portable at all. Make it not run by default. If you still
want it, just type 'make tags'

llvm-svn: 14368
2004-06-24 18:19:42 +00:00
Misha Brukman f57c3cd1e8 * Order #includes
* Use the DEBUG() guard for debug printouts

llvm-svn: 14367
2004-06-24 17:31:42 +00:00
Brian Gaeke eea4b17cf8 Make the double-fp pseudo registers be "NamedRegs".
llvm-svn: 14366
2004-06-24 09:23:21 +00:00
Brian Gaeke 2f6741f4f3 Fix a dyn_cast in copyConstantToRegister which should have been a cast.
Compactify the code that emits copies of constant ints into registers.

llvm-svn: 14365
2004-06-24 09:17:47 +00:00
Brian Gaeke c605ae6754 The long integer pseudo-regs are history. So long, we hardly knew ye.
llvm-svn: 14364
2004-06-24 08:55:21 +00:00
Brian Gaeke 4ed2826ce5 Use correct add*Imm form in more BuildMI calls.
Fix bug in emitGEPOperation where we weren't passing MBB, IP to getReg.
(hey, wouldn't a constant expression lowering pass be cool? huh huhuhuh)
Fix bug in emitGEPOperation where we might try to OR a constant into a
register which was too big to fit in the immediate field.
Support and, or, xor of longs.

llvm-svn: 14363
2004-06-24 08:55:09 +00:00
Brian Gaeke 7777e66704 Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.

llvm-svn: 14362
2004-06-24 07:37:12 +00:00
Brian Gaeke c8e1b5abe8 Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.
Add fp stores.

llvm-svn: 14361
2004-06-24 07:36:59 +00:00
Brian Gaeke 9f455efff1 Rename the load and store opcodes. The non-fp ones only have one
variant worth worrying about; the fp ones have two.
Stub out the case analysis of int-to-fp casts (no code yet).
I think the number of operands passed to BuildMI for loads was wrong.
Support load and store of float and double.

llvm-svn: 14360
2004-06-24 07:36:48 +00:00
Chris Lattner 5e08b93a34 Remove distasteful method which is really part of the indvars pass
llvm-svn: 14359
2004-06-24 06:52:20 +00:00
Chris Lattner 7a002d6010 Two fixes. First, stop using the ugly shouldSubstituteIndVar method.
Second, disable substitution of quadratic addrec expressions to avoid putting
multiplies in loops!

llvm-svn: 14358
2004-06-24 06:49:18 +00:00
Brian Gaeke 8863de761d Strange as it may sound, we'll not use LDD/STD to store longs. For reasons of
representational consistency, we want to address the halves of each 64-bit value
separately.

llvm-svn: 14356
2004-06-24 06:44:57 +00:00
Brian Gaeke 1e8cc73ea3 Support constant cast expressions.
llvm-svn: 14355
2004-06-24 06:33:00 +00:00
Brian Gaeke ae6fb8ae5c Make the most commonly preselected instructions add to the names of the
instructions they augment, instead of replacing them.  It's good for debugging,
and it's OK for the sparcv9 backend.

llvm-svn: 14353
2004-06-23 21:41:32 +00:00
Misha Brukman 8604fde39d TransformUtils library is no longer needed since Linker.cpp is in VMCore
llvm-svn: 14352
2004-06-23 17:36:17 +00:00
Misha Brukman 28ee8f0f30 Linker.h moved to include/llvm/Support
llvm-svn: 14351
2004-06-23 17:33:09 +00:00
Misha Brukman aff11a1001 Moved to include/llvm/Support
llvm-svn: 14350
2004-06-23 17:24:53 +00:00
Misha Brukman 09f04aa331 Linker.h moved to include/llvm/Support
llvm-svn: 14349
2004-06-23 17:24:31 +00:00
Misha Brukman 49bb82a4b8 Moved to lib/VMCore
llvm-svn: 14348
2004-06-23 17:21:17 +00:00
Reid Spencer 250b03184a Move the tests for readability of the template and gnuplot files so they
occur AFTER the source is checked out. This ensures that if either of the
-gnuplotscript or -templatefile options are not given, that they get picked
up from the checkout directory and don't abort the test unnecessarily.

llvm-svn: 14346
2004-06-23 14:07:12 +00:00
Reid Spencer 2e44d8748c Added a -noexternals options to avoid performing the externals tests on
test environments that don't have Povray or SPEC.

llvm-svn: 14345
2004-06-23 07:45:46 +00:00
Reid Spencer 64889c65e5 Make sure GetRegEx returns something gnuplot can deal with (a number, not
a ?) so that graphs don't bail if something fails in a test.

llvm-svn: 14344
2004-06-23 06:36:34 +00:00
Reid Spencer 3a4916ea32 Added a note about the new llvmgrep utility.
llvm-svn: 14343
2004-06-23 06:33:15 +00:00