Commit Graph

5461 Commits

Author SHA1 Message Date
Evan Cheng fcde8e52b3 Add a machine instruction flag indicating the instruction can clobber condition code / register(s) used to predicate instructions.
llvm-svn: 37464
2007-06-06 10:13:55 +00:00
Chris Lattner 6b79636532 add accessor
llvm-svn: 37453
2007-06-06 01:22:09 +00:00
Devang Patel 5aced6a54a Break friendship.
llvm-svn: 37450
2007-06-06 00:59:48 +00:00
Devang Patel 3c6ab49051 Rename.
llvm-svn: 37448
2007-06-06 00:49:02 +00:00
Devang Patel d7d3d71c7a Simplify class hierarchy.
llvm-svn: 37447
2007-06-06 00:46:36 +00:00
Devang Patel 506310d3dd Avoid non-trivial loop unswitching while optimizing for size.
llvm-svn: 37446
2007-06-06 00:21:03 +00:00
Zhou Sheng 2444a9adeb Commit first round work of PR1373. "noalias" is now fully supported in
VMCore, BitCode, and Assembly. Documentation and test case paramattrs.ll
updated also.

llvm-svn: 37432
2007-06-05 05:28:26 +00:00
Devang Patel b3adb9876a s/ETNode::getChildren/ETNode::getETNodeChildren/g
llvm-svn: 37426
2007-06-04 23:45:02 +00:00
Devang Patel 4a7c2830d4 Add FIXMEs.
llvm-svn: 37417
2007-06-04 17:38:00 +00:00
Devang Patel f7a4aad658 Remove unused method.
llvm-svn: 37416
2007-06-04 16:49:36 +00:00
Devang Patel ebc5b96735 s/DominatorTree::createNewNode/DominatorTree::addNewBlock/g
llvm-svn: 37415
2007-06-04 16:43:25 +00:00
Devang Patel a89566aefd Add basic block level interface to change immediate dominator
and create new node.

llvm-svn: 37414
2007-06-04 16:22:33 +00:00
Evan Cheng df75785594 Move ReplaceUsesOfBlockWith() out of BranchFolding into a MachineBasicBlock general facility.
llvm-svn: 37408
2007-06-04 06:44:01 +00:00
Devang Patel bdd1aaef10 s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/g
llvm-svn: 37407
2007-06-04 00:32:22 +00:00
Devang Patel 0e8aa7b69a s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/g
llvm-svn: 37403
2007-06-03 06:26:14 +00:00
Duncan Sands f708f73a1b The semantics of invoke require that we always jump to the unwind block
(landing pad) when an exception unwinds through the call.  This doesn't
quite match the way the dwarf unwinder works: by default it only jumps to
the landing pad if the catch or filter specification matches, and otherwise
it keeps on unwinding.  There are two ways of specifying to the unwinder
that it should "always" (more on why there are quotes here later) jump to
the landing pad: follow the specification by a 0 typeid, or follow it by
the typeid for the NULL typeinfo.  GCC does the first, and this patch makes
LLVM do the same as gcc.  However there is a problem: the unwinder performs
optimizations based on C++ semantics (it only expects destructors to be
run if the 0 typeid fires - known as "cleanups"), meaning it assumes that no
exceptions will be raised and that the raised exception will be reraised
at the end of the cleanup code.  So if someone writes their own LLVM code
using the exception intrinsics they will get a nasty surprise if they don't
follow these rules.  The other possibility of using the typeid corresponding
to NULL (catch-all) causes the unwinder to make no assumptions, so this is
probably what we should use in the long-run.  However since we are still
having trouble getting exception handling working properly, for the moment
it seems best to closely imitate GCC.

llvm-svn: 37399
2007-06-02 17:16:06 +00:00
Duncan Sands c063f5f362 Integrate exception filter support and exception catch support. This
simplifies the code in DwarfWriter, allows for multiple filters and
makes it trivial to specify filters accompanied by cleanups or catch-all
specifications (see next patch).  What a deal!  Patch blessed by Anton.

llvm-svn: 37398
2007-06-02 16:53:42 +00:00
Evan Cheng b964b9c025 Target specific ifcvt code duplication limit.
llvm-svn: 37384
2007-06-01 08:25:24 +00:00
Chris Lattner 3e3ff30aa2 Fix the asmprinter so that a globalvalue can specify an explicit alignment
smaller than the preferred alignment, but so that the target can actually
specify a minimum alignment if needed.  This fixes some objc protocol
failures Devang tracked down.

llvm-svn: 37373
2007-05-31 18:57:45 +00:00
Dale Johannesen a69ebdbebc Make stable_sort in tail merging actually be stable (it never was, but didn't
matter until my last change).  Reenable tail merging by default.

llvm-svn: 37354
2007-05-29 23:47:50 +00:00
Owen Anderson 9429cd1a61 Put GVN-PRE in all the right places.
llvm-svn: 37352
2007-05-29 23:36:32 +00:00
Evan Cheng 5983bdbb2c Add missing const qualifiers.
llvm-svn: 37341
2007-05-29 18:35:22 +00:00
Chris Lattner 8deaba7622 Add a new LLVMBuilder class, which makes it simpler and more uniform to
create large amounts of instructions by separating the insertion point
logic from the logic of what to create.

llvm-svn: 37332
2007-05-27 15:09:34 +00:00
Devang Patel 1b63e7a4b8 Disable Tail Merging for now.
llvm-svn: 37329
2007-05-25 01:00:24 +00:00
Dan Gohman 30978078bf Minor comment cleanups.
llvm-svn: 37321
2007-05-24 14:36:04 +00:00
Devang Patel d50859e87b Add dump() routines for debugging assistance.
llvm-svn: 37314
2007-05-23 19:55:36 +00:00
Anton Korobeynikov 3b327826db Mark all calls as "could throw", when exceptions are enabled. Emit necessary LP info too. This fixes PR1439
llvm-svn: 37311
2007-05-23 11:08:31 +00:00
Evan Cheng 1e25f56508 Add a couple of target hooks for predication.
llvm-svn: 37306
2007-05-23 07:19:12 +00:00
Chris Lattner c7e60517ed make these accessors private.
llvm-svn: 37302
2007-05-23 05:46:04 +00:00
Dale Johannesen f9cbdc676c name change requested by review of previous patch
llvm-svn: 37289
2007-05-22 18:31:04 +00:00
Dale Johannesen 82810c8a13 Make tail merging the default, except on powerPC. There was no prior art
for a target-dependent default with a command-line override; this way
should be generally usable.

llvm-svn: 37285
2007-05-22 17:14:46 +00:00
Evan Cheng 1933bbc735 Consistency.
llvm-svn: 37274
2007-05-22 01:21:58 +00:00
Chris Lattner 3d1937591d better portability for intptr_t.
llvm-svn: 37221
2007-05-18 07:07:05 +00:00
Evan Cheng 99be49dd9b RemoveBranch() and InsertBranch() now returns number of instructions deleted / inserted.
llvm-svn: 37192
2007-05-18 00:05:48 +00:00
Evan Cheng c0dc382fb7 Fix comment.
llvm-svn: 37191
2007-05-18 00:00:30 +00:00
Evan Cheng a92b2b38ff Move isSuccessor() offline, change it to use std::find.
llvm-svn: 37190
2007-05-17 23:58:53 +00:00
Dan Gohman 99ec2d88fb Correct a name in a comment.
llvm-svn: 37178
2007-05-17 21:30:39 +00:00
Chris Lattner e1047b2cfe silence some "comparison between signed and unsigned integer expressions"
warnings

llvm-svn: 37177
2007-05-17 20:01:40 +00:00
Dan Gohman 26b4ef76d9 Fix some sporadic segfaults that are triggered when SmallVector's heap
storage lands near the end of the available address space. In the expression
Begin+N > Capacity, the Begin+N was overflowing. Fix this by replacing it
by with an expression that doesn't involve computation of an address
beyond the end of allocated memory.

llvm-svn: 37171
2007-05-17 18:29:01 +00:00
Evan Cheng 2db22024cf Remove. Not needed.
llvm-svn: 37139
2007-05-17 00:11:35 +00:00
Evan Cheng 429178d727 Add target hook to specify block size limit for if-conversion.
llvm-svn: 37134
2007-05-16 23:45:53 +00:00
Evan Cheng dcff2eb0e8 PredicateInstruction returns true if the operation was successful.
llvm-svn: 37124
2007-05-16 21:53:07 +00:00
Evan Cheng b862b46aac Rename M_PREDICATED to M_PREDICABLE; Move TargetInstrInfo::isPredicatable() to MachineInstr::isPredicable().
llvm-svn: 37115
2007-05-16 20:43:42 +00:00
Chris Lattner bf7366e908 add missing mmx intrinsic
llvm-svn: 37099
2007-05-16 06:03:49 +00:00
Evan Cheng c4f5ac8383 Fix comments.
llvm-svn: 37096
2007-05-16 05:09:34 +00:00
Evan Cheng f5e53a58db Initial commit of (very basic) if converter.
llvm-svn: 37092
2007-05-16 02:00:57 +00:00
Evan Cheng eb3176552e Add TargetInstrInfo predication hooks.
llvm-svn: 37091
2007-05-16 01:58:56 +00:00
Evan Cheng 4d728b0419 Added getNumExplicitOperands and findFirstPredOperand.
llvm-svn: 37064
2007-05-15 01:26:09 +00:00
Evan Cheng 785276fcda All operands that made up of the predicate operands are maked M_PREDICATE_OPERAND.
llvm-svn: 37062
2007-05-15 01:21:27 +00:00
Dan Gohman eca3b67199 Correct a comment.
llvm-svn: 37058
2007-05-15 00:20:13 +00:00
Evan Cheng c690cba7d9 Fix for PR1406:
v1 =
r2 = move v1
   = op r2<kill>
...
r2 = move v1
   = op r2<kill>

Clear the first r2 kill if v1 and r2 are joined.

llvm-svn: 37050
2007-05-14 21:10:05 +00:00
Dan Gohman 86110bdf06 Use templates for the GraphType for DefaultDOTGraphTraits' members instead
of just using void*. This allows it to be used with graph adapters like
Inverse.

llvm-svn: 37032
2007-05-14 14:23:27 +00:00
Dan Gohman 619bfa47e3 Add a addRequiredTransitiveID member function, which is to
addRequiredTransitive as addRequiredID is to addRequired.

llvm-svn: 37031
2007-05-14 14:21:46 +00:00
Chris Lattner ba12a9d1fb update comments
llvm-svn: 37027
2007-05-14 01:54:16 +00:00
Reid Spencer 4c50b52f63 Add some things needed by the llvm-gcc version supporting bit accurate integer
types:
1. Functions to compute div/rem at the same time.
2. Further assurance that an APInt with 0 bitwidth cannot be constructed.
3. Left and right rotate operations.
4. An exactLogBase2 function which requires an exact power of two or it
   returns -1.

llvm-svn: 37025
2007-05-13 23:44:59 +00:00
Anton Korobeynikov bbaf55448b Emit multiple common EH frames for multiple (including blank) personality
functions. This partly fixes PR1414: now we're restricted only to one
personality function per eh frame, not per module. Further work on
"multiple personalities" topic needs representative example.

llvm-svn: 37018
2007-05-13 15:42:26 +00:00
Anton Korobeynikov 13da17843c More DWARF-related things cleanup:
1. Fix PR1380
2. Apply Duncan's patch from PR1410
3. Insert workaround for "one personality function per module" as noted in PR1414
4. Emit correct debug frames for x86/linux. This partly fixes DebugInfo/2006-11-06-StackTrace.cpp: stack trace is
shown correctly, but arguments for function on top of stack are displayed incorrectly.

llvm-svn: 37015
2007-05-12 22:36:25 +00:00
Dan Gohman daff5ec052 Remove forward-declarations for classes that don't exist.
llvm-svn: 36993
2007-05-11 21:05:57 +00:00
Dan Gohman fbb784e6af Add explicit keywords to several constructors that now have one argument.
llvm-svn: 36992
2007-05-11 21:04:48 +00:00
Dan Gohman c272746f44 Simplify BranchInst::getSuccessor, avoiding a conditional operator.
llvm-svn: 36991
2007-05-11 20:59:29 +00:00
Anton Korobeynikov 96142de3f0 Allow multiple invokes per landing pad. This (probably) fixes PR1410.
llvm-svn: 36977
2007-05-10 22:34:59 +00:00
Evan Cheng 9e17872c1d Eliminate MarkVirtRegAliveInBlock recursion.
llvm-svn: 36943
2007-05-08 19:00:00 +00:00
Evan Cheng 6c6cea91fc Add MachineBasicBlock preds / succs reverse iterators.
llvm-svn: 36942
2007-05-08 18:55:03 +00:00
Chris Lattner aba457b30b update comments, no functionality change
llvm-svn: 36929
2007-05-08 05:38:32 +00:00
Jeff Cohen b6e144cffe Unbreak VC++ build.
llvm-svn: 36901
2007-05-07 15:21:46 +00:00
Chris Lattner 275757a05e Enhance MemoryBuffer to return error messages in strings if they occur.
llvm-svn: 36899
2007-05-06 23:32:36 +00:00
Chris Lattner dc5d7ed6a7 remove bytecode headers
llvm-svn: 36885
2007-05-06 19:47:36 +00:00
Chris Lattner 7c01ed123b remove dead header
llvm-svn: 36884
2007-05-06 19:46:23 +00:00
Nick Lewycky e7da2d6ac3 Fix typo in comment.
llvm-svn: 36873
2007-05-06 13:37:16 +00:00
Chris Lattner c9c5d3eed8 Move this here from Bytecode/Archive.h
llvm-svn: 36865
2007-05-06 09:14:53 +00:00
Chris Lattner 4492f73eb4 allow zero-length arrays
llvm-svn: 36863
2007-05-06 08:22:10 +00:00
Chris Lattner eb99789fef we aren't at the end of stream until we've consumed all the bytes AND all
the bits in those bytes.

llvm-svn: 36861
2007-05-06 08:12:09 +00:00
Chris Lattner 963a255853 add support for identifying bitcode files
llvm-svn: 36845
2007-05-06 05:30:10 +00:00
Chris Lattner 7284541754 Add a helper that either opens a file or stdin.
llvm-svn: 36835
2007-05-06 04:41:59 +00:00
Jeff Cohen 53555de8f2 Make code more 64-bit aware.
llvm-svn: 36833
2007-05-06 03:24:19 +00:00
Jeff Cohen b3f36d48c6 Unbreak VC++.
llvm-svn: 36831
2007-05-06 03:12:47 +00:00
Chris Lattner 7ef417107b add a new CreateBitcodeWriterPass method, which creates a bitcode writer as
a pass

llvm-svn: 36828
2007-05-06 02:30:12 +00:00
Chris Lattner 19f599471c add inline asm code
llvm-svn: 36826
2007-05-06 01:50:11 +00:00
Chris Lattner 251d0a3adb Fix a subtle bug that prevented round-tripping 470.lbm
llvm-svn: 36825
2007-05-06 01:43:38 +00:00
Chris Lattner f25f710c4d add a denser encoding for null terminated strings, add a 6-bit abbrev as
well.  This shrinks kc++ from 2724088 to 2717360 bytes.

llvm-svn: 36821
2007-05-06 00:53:07 +00:00
Chris Lattner 036d1bddf2 implement the 'string constant' optimization. This shrinks kc.bit from
2878544 to 2815788

llvm-svn: 36818
2007-05-06 00:35:24 +00:00
Chris Lattner e7b015b2ed fix a bug I introduced when I merged some code together
llvm-svn: 36813
2007-05-05 23:40:48 +00:00
Anton Korobeynikov 4db0090339 Emit sections/directives in the proper order. This fixes PR1376. Also,
some small cleanup was made.

llvm-svn: 36780
2007-05-05 09:04:50 +00:00
Chris Lattner b0e7f54875 minor bugfix
llvm-svn: 36777
2007-05-05 07:20:34 +00:00
Chris Lattner 7dce4b04ca add a 6-bit encoding type for strings.
llvm-svn: 36770
2007-05-05 01:15:42 +00:00
Chris Lattner 982ec1eddc Implement support for globally associating abbrevs with block IDs, which
relieves us from having to emit the abbrevs into each instance of the block.
This shrinks kc.bit from 3368K to 3333K, but will be a more significant win
once instructions are abbreviated.

The VST went from:

  Block ID #14 (VALUE_SYMTAB):
      Num Instances: 2345
         Total Size: 1.29508e+07b/1.61885e+06B/404713W
       Average Size: 5522.73b/690.342B/172.585W
          % of file: 48.0645
  Tot/Avg SubBlocks: 0/0
    Tot/Avg Abbrevs: 7035/3
    Tot/Avg Records: 120924/51.5667
      % Abbrev Recs: 100

to:

  Block ID #14 (VALUE_SYMTAB):
      Num Instances: 2345
         Total Size: 1.26713e+07b/1.58391e+06B/395978W
       Average Size: 5403.53b/675.442B/168.86W
          % of file: 47.5198
  Tot/Avg SubBlocks: 0/0
    Tot/Avg Abbrevs: 0/0
    Tot/Avg Records: 120924/51.5667
      % Abbrev Recs: 100

because we didn't emit the same 3 abbrevs 2345 times :)

llvm-svn: 36767
2007-05-05 00:17:00 +00:00
Chris Lattner 0c7704f23c use a template to eliminate manual code duplication
llvm-svn: 36757
2007-05-04 20:40:50 +00:00
Bill Wendling e6182267d7 Add an "implies" field to features. This indicates that, if the current
feature is set, then the features in the implied list should be set also.
The opposite is also enforced: if a feature in the implied list isn't set,
then the feature that owns that implies list shouldn't be set either.

llvm-svn: 36756
2007-05-04 20:38:40 +00:00
Chris Lattner 5c71df1376 add support for array abbreviations.
llvm-svn: 36754
2007-05-04 20:33:47 +00:00
Chris Lattner a49bfa6701 eliminate lengths from record bodies
llvm-svn: 36751
2007-05-04 19:10:48 +00:00
Chris Lattner 83e10c4e67 minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
block type.

llvm-svn: 36748
2007-05-04 18:25:49 +00:00
Chris Lattner fde2829347 refcount BitCodeAbbrev objects
llvm-svn: 36747
2007-05-04 17:35:19 +00:00
Chris Lattner a919f6dddc if functiontype is going to have a pointer to a paramattr object, it better
be const.  The only way to get a pointer to these returns a const pointer.

llvm-svn: 36734
2007-05-04 03:39:28 +00:00
Chris Lattner c97d08f702 add a helper
llvm-svn: 36729
2007-05-04 03:13:39 +00:00
Chris Lattner 302dc74536 remove unused code
llvm-svn: 36727
2007-05-04 03:01:46 +00:00
Chris Lattner e796a9eec9 add new codes
llvm-svn: 36725
2007-05-04 03:00:00 +00:00
Chris Lattner 5a800309af add a new code
llvm-svn: 36703
2007-05-03 22:16:11 +00:00
Jeff Cohen ee7bf76342 Unbreak VC++ build.
llvm-svn: 36700
2007-05-03 22:09:21 +00:00
Devang Patel 2acc9769cc Use iterative while loop instead of recursive function call.
llvm-svn: 36694
2007-05-03 20:55:18 +00:00
Dan Gohman ac050d446b Use the explicit keyword for the SCEV class' constructor.
llvm-svn: 36686
2007-05-03 18:45:06 +00:00
Chris Lattner 357882d27c This is a patch to fix a compile error in STLExtras.h, and
a bug in GraphWriter.cpp.

Patch by Florian Brandner

llvm-svn: 36684
2007-05-03 18:32:10 +00:00
Chris Lattner 44e49e8665 remove extraneous type qualifiers
llvm-svn: 36679
2007-05-03 18:14:56 +00:00
Chris Lattner 2b8a4a624b remove extraneous top-level semi's
llvm-svn: 36678
2007-05-03 18:13:15 +00:00
Chris Lattner e33d087d1d remove two useless functions. Just inherit Type's implementation instead.
llvm-svn: 36677
2007-05-03 17:10:20 +00:00
Chris Lattner b86da5adbc remove useless type qualifiers
llvm-svn: 36676
2007-05-03 17:09:36 +00:00
Chris Lattner d0803d2e4e avoid invalid C++ token in #error
llvm-svn: 36674
2007-05-03 16:57:26 +00:00
Devang Patel 8c78a0bff0 Drop 'const'
llvm-svn: 36662
2007-05-03 01:11:54 +00:00
Chris Lattner 6ac3a37fb6 Add a new option.
llvm-svn: 36657
2007-05-03 00:16:07 +00:00
Devang Patel e95c6ad802 Use 'static const char' instead of 'static const int'.
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.

llvm-svn: 36652
2007-05-02 21:39:20 +00:00
Devang Patel 0f88f76cfe Re-install patch to enable use of PassID.
I am preparing another patch to address the failure that prompted
Chris to revert this patch earlier.

llvm-svn: 36649
2007-05-02 20:38:25 +00:00
Chris Lattner 7f716a937f update to reflect reality
llvm-svn: 36643
2007-05-02 05:47:22 +00:00
Chris Lattner 11dfd35627 revert enough of devang's recent patches to get the tree basically working again
llvm-svn: 36638
2007-05-02 04:25:31 +00:00
Anton Korobeynikov b538f67b1a Fix couple of bugs connected with eh info:
1. Correct output offsets on Linux
2. Fix "style" of personality function. It shouldn't be indirect.

llvm-svn: 36633
2007-05-01 22:23:12 +00:00
Devang Patel 09f162ca6a Do not use typeinfo to identify pass in pass manager.
llvm-svn: 36632
2007-05-01 21:15:47 +00:00
Evan Cheng 61e237d6a5 Pass call frame setup SP adjustment along to eliminateFrameIndex().
llvm-svn: 36624
2007-05-01 08:59:18 +00:00
Evan Cheng 16827c38c4 Add SPAdj parameter to account for call frame setup SP adjustment.
llvm-svn: 36623
2007-05-01 08:58:27 +00:00
Nate Begeman 27a625a74b llvm bug #1350, parts 1, 2, and 3.
llvm-svn: 36618
2007-05-01 05:57:02 +00:00
Chris Lattner 81c7fc2783 several bitfixes to JumpToBit
llvm-svn: 36616
2007-05-01 05:51:32 +00:00
Chris Lattner 0f9f44a96d add JumpToBit, an explicit init method, and a default ctor.
llvm-svn: 36613
2007-05-01 04:59:06 +00:00
Chris Lattner 20f0d2e290 add missing opcode.
llvm-svn: 36608
2007-05-01 02:12:05 +00:00
Evan Cheng 366feaed91 Added hook hasReservedCallFrame(). It returns true if the call frame is
included as part of the stack frame.

llvm-svn: 36606
2007-05-01 00:47:46 +00:00
Christopher Lamb 7c30c26fcb Implement review feedback.
llvm-svn: 36603
2007-04-30 23:54:10 +00:00
Christopher Lamb 019064279e Header file for ELF relocations.
llvm-svn: 36597
2007-04-30 20:41:08 +00:00
Anton Korobeynikov 16e2c5fec1 Fix comment
llvm-svn: 36596
2007-04-30 19:14:56 +00:00
Reid Spencer 8d4ff90680 If an archive is not recognized as an LLVM bytecode archive then declare
that it is native so that the linker will pass it on downstream. This avoids
a problem where the native link line fails because there is both a .so and
a .a file. The .a file gets processed as bytecode and then dropped from the
command line.

llvm-svn: 36584
2007-04-30 00:29:39 +00:00
Chris Lattner 84e376f669 add some helpers
llvm-svn: 36580
2007-04-29 21:49:05 +00:00
Chris Lattner e2ea46d50b compute this value correctly
llvm-svn: 36575
2007-04-29 19:49:58 +00:00
Dale Johannesen 1ee29dd026 Make ARM-specific version of getInlineAsmLength
llvm-svn: 36572
2007-04-29 19:17:45 +00:00
Chris Lattner b9bf8a8daa add a method
llvm-svn: 36571
2007-04-29 19:17:32 +00:00
Anton Korobeynikov 39f3cffbe3 Implement protected visibility. This partly implements PR1363. Linker
should be taught to deal with protected symbols.

llvm-svn: 36565
2007-04-29 18:35:00 +00:00
Anton Korobeynikov 546ea7ea88 Implement review feedback
llvm-svn: 36564
2007-04-29 18:02:48 +00:00
Chris Lattner a05721d340 Jeff's fix was fine
llvm-svn: 36563
2007-04-29 17:44:10 +00:00
Chris Lattner 8f73e83c49 add missing ctor
llvm-svn: 36562
2007-04-29 17:40:50 +00:00
Jeff Cohen 990a58f242 Fix MemoryBuffer breakage correctly.
llvm-svn: 36561
2007-04-29 14:43:31 +00:00
Chris Lattner fc4d7cd1ff make this file self-contained
llvm-svn: 36555
2007-04-29 08:05:07 +00:00
Chris Lattner 6694f60bec Switch the bitcode reader interface to take a MemoryBuffer instead of knowing
anything about disk I/O itself.  This greatly simplifies its interface -
eliminating the need for the ReaderWrappers.cpp file.

This adds a new option to llvm-dis (-bitcode) which instructs it to read
the input file as bitcode.  Until/unless the bytecode reader is taught to
read from MemoryBuffer, there is no way to handle stdin reading without it.

I don't plan to switch the bytecode reader over, I'd rather delete it :),
so the option will stay around temporarily.

llvm-svn: 36554
2007-04-29 07:54:31 +00:00
Chris Lattner ee2d1f1ed2 Add a new memorybuffer class, to unify all the file reading code in the system
llvm-svn: 36553
2007-04-29 06:58:52 +00:00
Chris Lattner 084982501a new method for creating a path, which does not create a temporary string.
llvm-svn: 36552
2007-04-29 06:16:32 +00:00
Anton Korobeynikov b18f8f85e9 Implement review feedback. Aliasees can be either GlobalValue's or
bitcasts of them.

llvm-svn: 36537
2007-04-28 13:45:00 +00:00
Chris Lattner f40a0a8b9f add a default parameter
llvm-svn: 36529
2007-04-28 05:42:38 +00:00
Chris Lattner 19651c77b2 add a way to make this less brittle
llvm-svn: 36528
2007-04-28 05:38:52 +00:00
Chris Lattner c48e2c3100 represent indirect operands explicitly in inline asm strings.
llvm-svn: 36522
2007-04-28 01:02:58 +00:00
Chris Lattner 2705829925 add a GEP helper function
llvm-svn: 36515
2007-04-27 20:35:56 +00:00
Jeff Cohen 6a23901014 Fix prolific source of 'possible loss of data' warnings.
llvm-svn: 36507
2007-04-27 14:43:05 +00:00
Devang Patel 2c1bba0c0c Move ~Pass() from Pass.h into Pass.cpp
llvm-svn: 36498
2007-04-26 21:33:42 +00:00
Devang Patel e6354bd3ff Delete Analysis Resolver.
llvm-svn: 36493
2007-04-26 21:06:41 +00:00
Dan Gohman e131e3ac02 Fix a typo in a comment.
llvm-svn: 36485
2007-04-26 19:40:56 +00:00
Evan Cheng 910c80851e Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
llvm-svn: 36483
2007-04-26 19:00:32 +00:00
Jeff Cohen 476db10261 Rename identifier that GCC uses as a macro, breaking llvm-gcc build.
llvm-svn: 36474
2007-04-26 15:07:47 +00:00
Chris Lattner 1ceecb5df4 start defining codes for instructions
llvm-svn: 36471
2007-04-26 05:53:04 +00:00