Commit Graph

5464 Commits

Author SHA1 Message Date
Evan Cheng
4e654852f1 Initial commit of (very basic) if converter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37092 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16 02:00:57 +00:00
Evan Cheng
0402e170e8 Add TargetInstrInfo predication hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37091 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16 01:58:56 +00:00
Evan Cheng
19e3f31f6a Added getNumExplicitOperands and findFirstPredOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:26:09 +00:00
Evan Cheng
5de723c118 All operands that made up of the predicate operands are maked M_PREDICATE_OPERAND.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 01:21:27 +00:00
Dan Gohman
289f61709f Correct a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37058 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-15 00:20:13 +00:00
Evan Cheng
2f6cb2b14c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37050 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-14 21:10:05 +00:00
Dan Gohman
2703f23304 Use templates for the GraphType for DefaultDOTGraphTraits' members instead
of just using void*. This allows it to be used with graph adapters like
Inverse.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37032 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-14 14:23:27 +00:00
Dan Gohman
b7f0675f43 Add a addRequiredTransitiveID member function, which is to
addRequiredTransitive as addRequiredID is to addRequired.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37031 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-14 14:21:46 +00:00
Chris Lattner
d82dc66944 update comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-14 01:54:16 +00:00
Reid Spencer
19dc32a2d4 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37025 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-13 23:44:59 +00:00
Anton Korobeynikov
8c7c17354c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37018 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-13 15:42:26 +00:00
Anton Korobeynikov
0ff3ca4f92 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37015 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-12 22:36:25 +00:00
Dan Gohman
667976e35f Remove forward-declarations for classes that don't exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36993 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 21:05:57 +00:00
Dan Gohman
1031c6f220 Add explicit keywords to several constructors that now have one argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36992 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 21:04:48 +00:00
Dan Gohman
b96039e4b9 Simplify BranchInst::getSuccessor, avoiding a conditional operator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36991 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-11 20:59:29 +00:00
Anton Korobeynikov
eeb37e0b80 Allow multiple invokes per landing pad. This (probably) fixes PR1410.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36977 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-10 22:34:59 +00:00
Evan Cheng
56184904cd Eliminate MarkVirtRegAliveInBlock recursion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36943 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 19:00:00 +00:00
Evan Cheng
6603d7ec67 Add MachineBasicBlock preds / succs reverse iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36942 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 18:55:03 +00:00
Chris Lattner
7adb53e7b1 update comments, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-08 05:38:32 +00:00
Jeff Cohen
0fea8ebb4a Unbreak VC++ build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36901 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-07 15:21:46 +00:00
Chris Lattner
5499da8833 Enhance MemoryBuffer to return error messages in strings if they occur.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 23:32:36 +00:00
Chris Lattner
4f40b75b01 remove bytecode headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36885 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 19:47:36 +00:00
Chris Lattner
663d7ddf63 remove dead header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36884 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 19:46:23 +00:00
Nick Lewycky
ecd94c804a Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 13:37:16 +00:00
Chris Lattner
4cbc5485e0 Move this here from Bytecode/Archive.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36865 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 09:14:53 +00:00
Chris Lattner
b55a5803b2 allow zero-length arrays
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36863 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 08:22:10 +00:00
Chris Lattner
9850b57587 we aren't at the end of stream until we've consumed all the bytes AND all
the bits in those bytes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36861 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 08:12:09 +00:00
Chris Lattner
609083b9e0 add support for identifying bitcode files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36845 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 05:30:10 +00:00
Chris Lattner
e96eec0c69 Add a helper that either opens a file or stdin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36835 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 04:41:59 +00:00
Jeff Cohen
85a57910bd Make code more 64-bit aware.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36833 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 03:24:19 +00:00
Jeff Cohen
332376bc60 Unbreak VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36831 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 03:12:47 +00:00
Chris Lattner
e8e1e4bf8a add a new CreateBitcodeWriterPass method, which creates a bitcode writer as
a pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36828 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 02:30:12 +00:00
Chris Lattner
c5ff2cc3de add inline asm code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36826 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 01:50:11 +00:00
Chris Lattner
048d0bd4c0 Fix a subtle bug that prevented round-tripping 470.lbm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 01:43:38 +00:00
Chris Lattner
cb3d91b05b add a denser encoding for null terminated strings, add a 6-bit abbrev as
well.  This shrinks kc++ from 2724088 to 2717360 bytes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36821 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 00:53:07 +00:00
Chris Lattner
ff7fc5dabe implement the 'string constant' optimization. This shrinks kc.bit from
2878544 to 2815788


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36818 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-06 00:35:24 +00:00
Chris Lattner
07b54242a8 fix a bug I introduced when I merged some code together
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 23:40:48 +00:00
Anton Korobeynikov
2a07e2f4df Emit sections/directives in the proper order. This fixes PR1376. Also,
some small cleanup was made.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36780 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 09:04:50 +00:00
Chris Lattner
02a13b5c50 minor bugfix
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36777 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 07:20:34 +00:00
Chris Lattner
28e4c4c9b3 add a 6-bit encoding type for strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36770 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 01:15:42 +00:00
Chris Lattner
e17b658c79 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 :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36767 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-05 00:17:00 +00:00
Chris Lattner
8d42fc3da2 use a template to eliminate manual code duplication
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36757 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:40:50 +00:00
Bill Wendling
4222d806fa 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36756 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:38:40 +00:00
Chris Lattner
3c074f61ed add support for array abbreviations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36754 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 20:33:47 +00:00
Chris Lattner
1d33bb3108 eliminate lengths from record bodies
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36751 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 19:10:48 +00:00
Chris Lattner
a727d5502c minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
block type.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36748 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 18:25:49 +00:00
Chris Lattner
299b2d2070 refcount BitCodeAbbrev objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 17:35:19 +00:00
Chris Lattner
645fc4edc2 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36734 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:39:28 +00:00
Chris Lattner
310fbbf7f7 add a helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36729 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:13:39 +00:00
Chris Lattner
20c7b986d9 remove unused code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36727 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:01:46 +00:00
Chris Lattner
dea4205556 add new codes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36725 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04 03:00:00 +00:00
Chris Lattner
b7dd88fa7d add a new code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36703 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:16:11 +00:00
Jeff Cohen
b4dbd9e243 Unbreak VC++ build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36700 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 22:09:21 +00:00
Devang Patel
99c282453a Use iterative while loop instead of recursive function call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36694 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 20:55:18 +00:00
Dan Gohman
4998264403 Use the explicit keyword for the SCEV class' constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36686 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:45:06 +00:00
Chris Lattner
82493289e0 This is a patch to fix a compile error in STLExtras.h, and
a bug in GraphWriter.cpp.

Patch by Florian Brandner


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36684 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:32:10 +00:00
Chris Lattner
18a4c74136 remove extraneous type qualifiers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36679 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:14:56 +00:00
Chris Lattner
7cf67dfb6a remove extraneous top-level semi's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36678 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:13:15 +00:00
Chris Lattner
a6bb4a9e93 remove two useless functions. Just inherit Type's implementation instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36677 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 17:10:20 +00:00
Chris Lattner
49e1580214 remove useless type qualifiers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36676 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 17:09:36 +00:00
Chris Lattner
f509253180 avoid invalid C++ token in #error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36674 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 16:57:26 +00:00
Devang Patel
1997473cf7 Drop 'const'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 01:11:54 +00:00
Chris Lattner
aa4f1e164b Add a new option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36657 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 00:16:07 +00:00
Devang Patel
3e15bf33e0 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 21:39:20 +00:00
Devang Patel
eae540a037 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36649 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 20:38:25 +00:00
Chris Lattner
fa5416b6f6 update to reflect reality
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 05:47:22 +00:00
Chris Lattner
80d692be2e revert enough of devang's recent patches to get the tree basically working again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36638 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02 04:25:31 +00:00
Anton Korobeynikov
79dda2b048 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 22:23:12 +00:00
Devang Patel
794fd75c67 Do not use typeinfo to identify pass in pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 21:15:47 +00:00
Evan Cheng
a09f0d4ab7 Pass call frame setup SP adjustment along to eliminateFrameIndex().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36624 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 08:59:18 +00:00
Evan Cheng
18b111bffe Add SPAdj parameter to account for call frame setup SP adjustment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36623 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 08:58:27 +00:00
Nate Begeman
7bf1c272ab llvm bug #1350, parts 1, 2, and 3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:57:02 +00:00
Chris Lattner
2bbb703e4f several bitfixes to JumpToBit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 05:51:32 +00:00
Chris Lattner
90a5c7dbc1 add JumpToBit, an explicit init method, and a default ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 04:59:06 +00:00
Chris Lattner
10d4c586ed add missing opcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 02:12:05 +00:00
Evan Cheng
14f1dd120f Added hook hasReservedCallFrame(). It returns true if the call frame is
included as part of the stack frame.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01 00:47:46 +00:00
Christopher Lamb
5443779d5a Implement review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 23:54:10 +00:00
Christopher Lamb
99eaef9b06 Header file for ELF relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 20:41:08 +00:00
Anton Korobeynikov
bd4e080a16 Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 19:14:56 +00:00
Reid Spencer
c9a83e4f19 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-30 00:29:39 +00:00
Chris Lattner
8d89f1fbb6 add some helpers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 21:49:05 +00:00
Chris Lattner
a2d0ad4fe2 compute this value correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36575 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 19:49:58 +00:00
Dale Johannesen
8650199fbb Make ARM-specific version of getInlineAsmLength
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 19:17:45 +00:00
Chris Lattner
bd40a6d3ee add a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36571 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 19:17:32 +00:00
Anton Korobeynikov
6f9896fcc8 Implement protected visibility. This partly implements PR1363. Linker
should be taught to deal with protected symbols.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36565 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 18:35:00 +00:00
Anton Korobeynikov
c6c98af9e5 Implement review feedback
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36564 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 18:02:48 +00:00
Chris Lattner
ee181bc899 Jeff's fix was fine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36563 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 17:44:10 +00:00
Chris Lattner
9728905481 add missing ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36562 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 17:40:50 +00:00
Jeff Cohen
930c0fead9 Fix MemoryBuffer breakage correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36561 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 14:43:31 +00:00
Chris Lattner
107d80956d make this file self-contained
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36555 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 08:05:07 +00:00
Chris Lattner
c453f76e2b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36554 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 07:54:31 +00:00
Chris Lattner
333ffd4abf Add a new memorybuffer class, to unify all the file reading code in the system
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36553 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 06:58:52 +00:00
Chris Lattner
a527bf13a5 new method for creating a path, which does not create a temporary string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36552 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29 06:16:32 +00:00
Anton Korobeynikov
a80e1181b7 Implement review feedback. Aliasees can be either GlobalValue's or
bitcasts of them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36537 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 13:45:00 +00:00
Chris Lattner
4c27344bfd add a default parameter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36529 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 05:42:38 +00:00
Chris Lattner
bb58b9c3c0 add a way to make this less brittle
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36528 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 05:38:52 +00:00
Chris Lattner
73d0d0d4b8 represent indirect operands explicitly in inline asm strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36522 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-28 01:02:58 +00:00
Chris Lattner
6b0974cd1d add a GEP helper function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36515 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 20:35:56 +00:00
Jeff Cohen
b35417c607 Fix prolific source of 'possible loss of data' warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36507 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-27 14:43:05 +00:00
Devang Patel
6e21ff0b0a Move ~Pass() from Pass.h into Pass.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:33:42 +00:00
Devang Patel
5230eaa5a8 Delete Analysis Resolver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36493 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 21:06:41 +00:00
Dan Gohman
edc1d15984 Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36485 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 19:40:56 +00:00
Evan Cheng
faa510726f Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 19:00:32 +00:00
Jeff Cohen
2864b77efc Rename identifier that GCC uses as a macro, breaking llvm-gcc build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 15:07:47 +00:00
Chris Lattner
c651e4c51e start defining codes for instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36471 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 05:53:04 +00:00
Chris Lattner
eb0107af86 add a new code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36462 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 03:26:26 +00:00
Chris Lattner
d743f0e8f2 add alias support to bitcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36460 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 02:46:23 +00:00
Evan Cheng
05350288a6 Be careful when to add implicit kill / dead operands. Don't add them during / post reg-allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36458 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 01:40:09 +00:00
Evan Cheng
505e5510a2 Change UsedPhysRegs from array bool to BitVector to save some space. Setting / getting its states now go through MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36451 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 22:10:09 +00:00
Evan Cheng
e96f50142e Data structure change to improve compile time (especially in debug mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 19:34:00 +00:00
Devang Patel
c20a64d2bb Mem2Reg does not need TargetData.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36446 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 18:41:11 +00:00
Devang Patel
41968df51e Remove unused function argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36441 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 17:15:20 +00:00
Anton Korobeynikov
7bc428fa6f Add missed file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36439 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 16:42:39 +00:00
Anton Korobeynikov
8b0a8c84da Implement aliases. This fixes PR1017 and it's dependent bugs. CFE part
will follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36435 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 14:27:10 +00:00
Evan Cheng
24a3cc4c83 Fix for PR1306.
- A register def / use now implicitly affects sub-register liveness but does
not affect liveness information of super-registers.
- Def of a larger register (if followed by a use later) is treated as
read/mod/write of a smaller register.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:30:23 +00:00
Evan Cheng
b2f2e64c07 Test if a register is sub- or super-register of another.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36433 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:24:50 +00:00
Evan Cheng
cdee1c4272 Minor speed tweak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36432 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 07:24:13 +00:00
Chris Lattner
e47b1446d8 support for >4G frames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36424 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:29:06 +00:00
Chris Lattner
a401b1e1c5 support > 4G stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36422 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:20:54 +00:00
Chris Lattner
be7d83ec0e allow 64-bit stack objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36419 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-25 04:07:31 +00:00
Bill Wendling
69dc5332de Add the final MMX instructions. Correct a few wrong patterns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 21:18:37 +00:00
Chris Lattner
253bb78adb comentate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36395 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 15:54:42 +00:00
Chris Lattner
c9c448ffa2 add records for constant exprs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36393 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24 07:03:08 +00:00
Chris Lattner
2c783e46c3 add codes for constants table
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36382 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 23:29:59 +00:00
Christopher Lamb
df1349546f Fix bug in isFloatingPoint()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36381 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 22:50:40 +00:00
Chris Lattner
703f5291c4 add a missing operator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 20:58:14 +00:00
Chris Lattner
73f3fd775f Fix a bug in bitstream writer handling abbrevs, add value symtab
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 20:34:46 +00:00
Chris Lattner
aea2012433 implement reading of abbrevs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36366 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 18:57:58 +00:00
Chris Lattner
2a5e354f20 minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36365 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 18:57:32 +00:00
Chris Lattner
6d4135a62e finish implementation of basic abbrev writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 17:43:52 +00:00
Chris Lattner
36d5e7d31b first part of implementation of abbrevs. The writer isn't fully there yet and the
reader doesn't handle them at all yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36363 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 16:04:05 +00:00
Chris Lattner
8f122b1e7f promote this to being a public header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 01:01:15 +00:00
Christopher Lamb
95c218a83e PR400 phase 2. Propagate attributed load/store information through DAGs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 23:15:30 +00:00
Christopher Lamb
032507d989 PR400 phase 1 implementation feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36354 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 22:22:02 +00:00
Jeff Cohen
dc4cb35105 Have compiler enforce this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 22:16:55 +00:00
Christopher Lamb
43c7f37942 PR400 work phase 1. Add attributed load/store instructions for volatile/align to LLVM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36349 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 19:24:39 +00:00
Jeff Cohen
cb403d69fb Fix build problem with Gentoo 4.1.1-r3.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36348 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 18:49:32 +00:00
Reid Spencer
b90909e405 For PR1136:
Add reference counting to ParamAttrsList and make use of it in Function,
CallInst and InvokeInst classes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 17:28:03 +00:00
Reid Spencer
7aaa4a5c09 Terminate with newline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36345 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 16:31:22 +00:00
Reid Spencer
4244334fe9 Undo premature commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36344 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 16:30:47 +00:00
Reid Spencer
0146c2e67b Terminate file with newline.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36343 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 16:29:35 +00:00
Jeff Cohen
728e0e3173 Implement review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36342 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 15:11:24 +00:00
Jeff Cohen
a0c96a068c Teach Visual Studio about Bitcode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36341 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 15:00:52 +00:00
Chris Lattner
b35ca9db9c Define the content-independent interfaces to read/write bitcode files and
the high-level interface to read/write LLVM IR bitcode files.

This is a work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36329 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 06:22:05 +00:00
Reid Spencer
4f859aa532 For PR1146:
Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22 05:46:44 +00:00
Lauro Ramos Venancio
2c5c111b6c X86 TLS: Implement review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 20:56:26 +00:00
Reid Spencer
c67bdc288a Revert Christopher Lamb's load/store alignment changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 18:36:27 +00:00
Jeff Cohen
8f192e0ee0 Make enum-valued bitfield large enough to avoid interpretation as negative values in VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36304 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 16:29:37 +00:00
Jeff Cohen
8c28c467f6 Fix breakage of bytecode reader when built with VC++.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36303 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 15:29:13 +00:00
Jeff Cohen
68c773cf19 The expression "SubclassData = (SubclassData & ~1) | (V) ? 1 : 0;" does not do what
was intended!  | has higher precedence than ?.  Caught by Visual Studio.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-21 14:32:59 +00:00