Chris Lattner
5ed58fc4a9
add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.
...
Writing it twice in the same day was too much for me.
llvm-svn: 35978
2007-04-14 00:12:57 +00:00
Reid Spencer
6e7854339e
Implement a getBitsNeeded method to determine how many bits are needed to
...
represent a string in binary form by an APInt.
llvm-svn: 35968
2007-04-13 19:19:07 +00:00
Dan Gohman
2d4b1767ab
Rename Value::getValueType to getValueID, to avoid confusion with
...
other things named getValueType.
llvm-svn: 35964
2007-04-13 18:12:09 +00:00
Chris Lattner
335f1cb1f8
CSE simple binary expressions when they are inserted. This makes LSR produce
...
less huge code that needs to be cleaned up by sdisel.
llvm-svn: 35959
2007-04-13 05:04:18 +00:00
Lauro Ramos Venancio
a76c2806de
Implement the "thread_local" keyword.
...
llvm-svn: 35950
2007-04-12 18:32:50 +00:00
Reid Spencer
82da0eb67c
For PR1284:
...
Implement the "part_set" intrinsic.
llvm-svn: 35938
2007-04-12 02:48:46 +00:00
Chris Lattner
9564abbfb5
improve the patch for PR1318 to also support grouped options with custom
...
handlers (like the pass list). My previous fix only supported *new* command
line options, not additions to old ones.
This fixes test/Feature/load_module.ll
llvm-svn: 35935
2007-04-12 00:36:29 +00:00
Reid Spencer
2792e203c5
For PR1146:
...
Put the parameter attributes in their own ParamAttr name space. Adjust the
rest of llvm as a result.
llvm-svn: 35877
2007-04-11 02:44:20 +00:00
Reid Spencer
caf5a6cbd7
Teach sys::Path how to recognize different kinds of object files for ELF
...
and Mach-O systems. Additionally, correct the Mach-O logic code to look at
byte 12 not byte 15. Hopefully this fixes the llvm-ld warning on Darwin.
llvm-svn: 35876
2007-04-11 02:02:09 +00:00
Bill Wendling
3b1189afbf
Add support for our first SSSE3 instruction "pmulhrsw".
...
llvm-svn: 35869
2007-04-10 22:10:25 +00:00
Chris Lattner
5af0826c0b
fix a comment bug Reid noticed
...
llvm-svn: 35864
2007-04-10 16:33:06 +00:00
Chris Lattner
f661523670
add missing methods, mark stuff const
...
llvm-svn: 35862
2007-04-10 07:06:21 +00:00
Chris Lattner
da0e61ca4c
getLimitedValue now just forward to APInt's getLimitedValue. Mark it const.
...
llvm-svn: 35861
2007-04-10 06:44:12 +00:00
Chris Lattner
9359e7f928
add a method
...
llvm-svn: 35860
2007-04-10 06:43:18 +00:00
Reid Spencer
85e4416d26
Drop the "bit" prefix for the part.select intrinsic.
...
llvm-svn: 35854
2007-04-10 02:52:46 +00:00
Chris Lattner
461f7ed33b
remove dead target hooks.
...
llvm-svn: 35847
2007-04-09 23:34:08 +00:00
Chris Lattner
ae6e2c0ee5
remove some dead target hooks, subsumed by isLegalAddressingMode
...
llvm-svn: 35840
2007-04-09 22:27:04 +00:00
Chris Lattner
b31e6eee0c
add a default ctor for AddrMode.
...
llvm-svn: 35832
2007-04-09 21:18:34 +00:00
Reid Spencer
93a57ef458
For PR1146:
...
* Add ParamAttrs to InvokeInst class too.
* Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0
* Destruct the ParamAttrs in Call/Invoke destructors to avoid memory
leaks. This will change when ParamAttrsList is uniquified but needs to
be correct until then.
llvm-svn: 35824
2007-04-09 18:00:57 +00:00
Reid Spencer
d2380cfb76
For PR1146:
...
* Add ParamAttrList pointers to Function and CallInst.
* Move the implementation of ParamAttrList from Type.cpp to Function.cpp
llvm-svn: 35818
2007-04-09 15:01:12 +00:00
Anton Korobeynikov
6ee97ee42a
Next stage into switch lowering refactoring
...
1. Fix some bugs in the jump table lowering threshold
2. Implement much better metric for optimal pivot selection
3. Tune thresholds for different lowering methods
4. Implement shift-and trick for lowering small (<machine word
length) cases with few destinations. Good testcase will follow.
llvm-svn: 35816
2007-04-09 12:31:58 +00:00
Reid Spencer
a617889460
For PR1146:
...
Remove the handling of ParameterAttributes from FunctionType as they are
their own object defined in ParameterAttributes.h now.
llvm-svn: 35805
2007-04-09 06:06:57 +00:00
Owen Anderson
e4c29f0b01
Move isReachableFromEntry out of line to avoid an unnecessary #include
...
llvm-svn: 35797
2007-04-09 04:07:36 +00:00
Reid Spencer
135f2f1261
Chris convinced me that the default size of the SmallVector (2) was too
...
small. Since it doesn't cost much to have 2 more (8 bytes), but not having
them would require a malloc as soon as the third one is needed. Setting
the default to 4 delays the malloc until the 5th parameter attribute.
llvm-svn: 35793
2007-04-09 01:53:54 +00:00
Reid Spencer
4ea619ae00
Remove redundancy.
...
llvm-svn: 35790
2007-04-09 01:26:02 +00:00
Owen Anderson
f9a432a613
Cleanup some from my DomSet-removal changes. Add a new
...
isReachableFromEntry
test to ETForest to factor a common test out of code.
llvm-svn: 35786
2007-04-09 00:52:49 +00:00
Reid Spencer
52e3bd1df0
Fix a typo.
...
llvm-svn: 35781
2007-04-08 22:50:29 +00:00
Reid Spencer
bcb7b5ca5d
Implement more feedback:
...
* Allow attributes to be added and removed singly or jointly so that in
the future something like -pruneh can manipulate them more easily.
* Move functions generally only useful for LLVM internals to the end of
the accessors list instead of the beginning.
llvm-svn: 35780
2007-04-08 22:30:27 +00:00
Reid Spencer
065db06580
Implement review feedback.
...
llvm-svn: 35777
2007-04-08 22:05:44 +00:00
Owen Anderson
4b323657b9
Remove DomSet completely. This concludes work on PR1171.
...
llvm-svn: 35775
2007-04-08 21:30:05 +00:00
Reid Spencer
e62f16d5c6
Implement the output inserter for PathWithStatus
...
llvm-svn: 35770
2007-04-08 20:05:10 +00:00
Reid Spencer
8b99493ea3
For PR1146:
...
New header file to provide parameter attribute declarations.
llvm-svn: 35767
2007-04-08 14:46:50 +00:00
Reid Spencer
aad3d1f6c8
For PR1291:
...
Change to use PathWithStatus
llvm-svn: 35746
2007-04-07 19:50:21 +00:00
Reid Spencer
14fb379888
For PR1291:
...
Implement the PathWithStatus class and its use throughout lib/System.
llvm-svn: 35742
2007-04-07 18:52:17 +00:00
Owen Anderson
7cf9d12f2e
Add DomSet back, and revert the changes to LoopSimplify. Apparently the
...
ETForest updating mechanisms don't work as I thought they did. These changes
will be reapplied once the issue is worked out.
llvm-svn: 35741
2007-04-07 18:23:27 +00:00
Nick Lewycky
ec51e934ef
Add signExtend to ConstantRange, to complement zeroExtend and truncate.
...
llvm-svn: 35733
2007-04-07 15:41:33 +00:00
Owen Anderson
85b0e20f2a
Completely purge DomSet. This is the (hopefully) final patch for PR1171.
...
llvm-svn: 35731
2007-04-07 07:17:27 +00:00
Owen Anderson
41bf50021d
Expunge DomSet from CodeExtractor. This is part of the continuing work
...
on PR1171.
llvm-svn: 35726
2007-04-07 05:31:27 +00:00
Chris Lattner
b30cb05d63
add loop rot
...
llvm-svn: 35722
2007-04-07 04:43:02 +00:00
Devang Patel
562df7f986
Add loop rotation pass.
...
llvm-svn: 35714
2007-04-07 01:25:15 +00:00
Chris Lattner
0160bf7114
rearchitect the registration mechanism used by the command line option stuff.
...
This dramatically reduce the amount of memory allocated by the commandline stuff
at static init time, changing it to build local data structures when ParseCommandLineOptions
is called. In a dummy empty program that links some llvm libraries, this reduces
the number of malloc'd bytes from 4864 to 3360 on entry to main. Most of that
memory is now allocated by non-commandline related stuff.
llvm-svn: 35701
2007-04-06 21:06:55 +00:00
Chris Lattner
d0cc2333d1
Switch some vectors to smallvectors. This reduces amount of malloc'd
...
memory that occurs before main starts from 5104 to 4864 bytes with a dummy
example app.
llvm-svn: 35698
2007-04-06 18:36:18 +00:00
Chris Lattner
2f1c6daeae
Eliminate unneeded virtual methods
...
llvm-svn: 35697
2007-04-06 18:06:27 +00:00
Reid Spencer
5d36a01dba
For PR1209:
...
Implement Type class's ContainedTys without using a std::vector.
llvm-svn: 35693
2007-04-06 02:02:20 +00:00
Chris Lattner
4272783ca4
eliminate a virtual method
...
llvm-svn: 35691
2007-04-05 22:21:39 +00:00
Chris Lattner
d33f94f2d2
remove the dead removeArgument method, rename Options to OptionsMap.
...
llvm-svn: 35690
2007-04-05 21:58:17 +00:00
Chris Lattner
d39ae2fa6d
Add a helper class (APSInt) which can represent an APInt along with sign
...
information. This is useful when a value does have a sign associated with
it. This shouldn't be used generally in LLVM for mid-level optimizer stuff.
llvm-svn: 35681
2007-04-05 05:20:11 +00:00
Reid Spencer
6eb55df794
Implement the llvm.bit.part_select.iN.iN.iN overloaded intrinsic.
...
llvm-svn: 35678
2007-04-04 23:48:25 +00:00
Lauro Ramos Venancio
2dfc0515a6
Fix release build.
...
llvm-svn: 35676
2007-04-04 22:13:39 +00:00
Anton Korobeynikov
e16f421e0e
Properly emit range comparisons for switch cases, where neighbour cases
...
go to the same destination. Now we're producing really good code for
switch-lower-feature.ll testcase
llvm-svn: 35672
2007-04-04 21:14:49 +00:00