5521 Commits

Author SHA1 Message Date
Evan Cheng
3163b77d5e Add target hook to specify block size limit for if-conversion.
llvm-svn: 37134
2007-05-16 23:45:53 +00:00
Evan Cheng
973f4a19cb PredicateInstruction returns true if the operation was successful.
llvm-svn: 37124
2007-05-16 21:53:07 +00:00
Evan Cheng
3b10540b5e 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
db7986458d add missing mmx intrinsic
llvm-svn: 37099
2007-05-16 06:03:49 +00:00
Evan Cheng
770584a8cd Fix comments.
llvm-svn: 37096
2007-05-16 05:09:34 +00:00
Evan Cheng
aafca4d4a2 Initial commit of (very basic) if converter.
llvm-svn: 37092
2007-05-16 02:00:57 +00:00
Evan Cheng
7fe6d7cb7e Add TargetInstrInfo predication hooks.
llvm-svn: 37091
2007-05-16 01:58:56 +00:00
Evan Cheng
eea85a767e Added getNumExplicitOperands and findFirstPredOperand.
llvm-svn: 37064
2007-05-15 01:26:09 +00:00
Evan Cheng
71c4d42bd7 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
b0fd1c9640 Correct a comment.
llvm-svn: 37058
2007-05-15 00:20:13 +00:00
Evan Cheng
e9e48bcf28 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
17cd3485e1 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
1fba6fb9a8 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
82c4362a67 update comments
llvm-svn: 37027
2007-05-14 01:54:16 +00:00
Reid Spencer
a17d02ad08 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
100919126f 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
7daaf71b29 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
19d23d8595 Remove forward-declarations for classes that don't exist.
llvm-svn: 36993
2007-05-11 21:05:57 +00:00
Dan Gohman
c0617dde90 Add explicit keywords to several constructors that now have one argument.
llvm-svn: 36992
2007-05-11 21:04:48 +00:00
Dan Gohman
fad75ac3af Simplify BranchInst::getSuccessor, avoiding a conditional operator.
llvm-svn: 36991
2007-05-11 20:59:29 +00:00
Anton Korobeynikov
0a29b65e0c Allow multiple invokes per landing pad. This (probably) fixes PR1410.
llvm-svn: 36977
2007-05-10 22:34:59 +00:00
Evan Cheng
855b26b72e Eliminate MarkVirtRegAliveInBlock recursion.
llvm-svn: 36943
2007-05-08 19:00:00 +00:00
Evan Cheng
abe2299a19 Add MachineBasicBlock preds / succs reverse iterators.
llvm-svn: 36942
2007-05-08 18:55:03 +00:00
Chris Lattner
114dad2f8f update comments, no functionality change
llvm-svn: 36929
2007-05-08 05:38:32 +00:00
Jeff Cohen
2e8263c013 Unbreak VC++ build.
llvm-svn: 36901
2007-05-07 15:21:46 +00:00
Chris Lattner
112d26a164 Enhance MemoryBuffer to return error messages in strings if they occur.
llvm-svn: 36899
2007-05-06 23:32:36 +00:00
Chris Lattner
5ca60f2489 remove bytecode headers
llvm-svn: 36885
2007-05-06 19:47:36 +00:00
Chris Lattner
7dbcbe7af5 remove dead header
llvm-svn: 36884
2007-05-06 19:46:23 +00:00
Nick Lewycky
c2306ff5b4 Fix typo in comment.
llvm-svn: 36873
2007-05-06 13:37:16 +00:00
Chris Lattner
6cfc34329b Move this here from Bytecode/Archive.h
llvm-svn: 36865
2007-05-06 09:14:53 +00:00
Chris Lattner
87753518a9 allow zero-length arrays
llvm-svn: 36863
2007-05-06 08:22:10 +00:00
Chris Lattner
37779a0b4c 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
ae80a1de2f add support for identifying bitcode files
llvm-svn: 36845
2007-05-06 05:30:10 +00:00
Chris Lattner
cee444cf93 Add a helper that either opens a file or stdin.
llvm-svn: 36835
2007-05-06 04:41:59 +00:00
Jeff Cohen
0b108b4f29 Make code more 64-bit aware.
llvm-svn: 36833
2007-05-06 03:24:19 +00:00
Jeff Cohen
ce844b2aaa Unbreak VC++.
llvm-svn: 36831
2007-05-06 03:12:47 +00:00
Chris Lattner
bf23240f44 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
c9ca38fedf add inline asm code
llvm-svn: 36826
2007-05-06 01:50:11 +00:00
Chris Lattner
2753e54f7b Fix a subtle bug that prevented round-tripping 470.lbm
llvm-svn: 36825
2007-05-06 01:43:38 +00:00
Chris Lattner
6d0c5eb739 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
34b256e1a6 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
9818d0a7e6 fix a bug I introduced when I merged some code together
llvm-svn: 36813
2007-05-05 23:40:48 +00:00
Anton Korobeynikov
ce48606d7a 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
7d16cb364d minor bugfix
llvm-svn: 36777
2007-05-05 07:20:34 +00:00
Chris Lattner
cedc5577f2 add a 6-bit encoding type for strings.
llvm-svn: 36770
2007-05-05 01:15:42 +00:00
Chris Lattner
eca2bb1334 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
e2b2272c53 use a template to eliminate manual code duplication
llvm-svn: 36757
2007-05-04 20:40:50 +00:00
Bill Wendling
dc82c5a195 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
75b84adf6b add support for array abbreviations.
llvm-svn: 36754
2007-05-04 20:33:47 +00:00
Chris Lattner
a4aa2e9b7a eliminate lengths from record bodies
llvm-svn: 36751
2007-05-04 19:10:48 +00:00