Commit Graph

1373 Commits

Author SHA1 Message Date
Chris Lattner 04e71c6e4d label* is not a valid type, add an assertion.
llvm-svn: 30968
2006-10-15 23:21:12 +00:00
Chris Lattner 057083f0e7 Fix another dtor issue. The function local statics in this function were
being destroyed at inconvenient times.  Switch to using non-local ManagedStatic
objects, which actually also speeds up ConstRules::get.

llvm-svn: 30931
2006-10-13 17:22:21 +00:00
Chris Lattner 65511ff69d Add insertelement/extractelement helper ctors.
llvm-svn: 30750
2006-10-05 06:24:58 +00:00
Chris Lattner 19721e8749 getFilename/getDirectory shouldn't abort if the global has no init. This
can happen on bugpoint reduced testcases f.e..

llvm-svn: 30729
2006-10-04 23:06:26 +00:00
Chris Lattner 87732cfb71 Add a version of the globalvariable ctor that inserts at a specific location.
llvm-svn: 30677
2006-09-30 21:31:26 +00:00
Chris Lattner b10b72e362 Minor cleanups
llvm-svn: 30668
2006-09-28 23:45:00 +00:00
Chris Lattner befaee91d3 Now that ConstantBool::True/False are gone, we can modify Type.cpp to
eliminate its static dtors, without having code that depends on order of
initialization.  Eliminate static ctors/dtors from Type.cpp.

llvm-svn: 30667
2006-09-28 23:38:07 +00:00
Chris Lattner a84df0a2f1 Eliminate ConstantBool::True and ConstantBool::False. Instead, provide
ConstantBool::getTrue() and ConstantBool::getFalse().

llvm-svn: 30666
2006-09-28 23:36:21 +00:00
Chris Lattner 7843066e15 Eliminate ConstantBool::True and ConstantBool::False. Instead, provideConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30664
2006-09-28 23:34:49 +00:00
Chris Lattner 94e39cbdfe simplify code
llvm-svn: 30655
2006-09-28 22:50:29 +00:00
Chris Lattner c7d3195254 remove reference to dead method
llvm-svn: 30641
2006-09-28 00:38:19 +00:00
Chris Lattner 69edc98b74 Use the new ManagedStatic class to explicitly manage static variables, eliminating static ctors/dtors
llvm-svn: 30639
2006-09-28 00:35:06 +00:00
Chris Lattner 4091f4690a add method, correct comment
llvm-svn: 30584
2006-09-23 04:03:45 +00:00
Devang Patel 81c9e42bea remove extra white spaces.
llvm-svn: 30576
2006-09-22 01:07:57 +00:00
Devang Patel 0c4e730c9c Use iterative algorith to assign DFS number. This reduces
call stack depth.

llvm-svn: 30575
2006-09-22 01:05:33 +00:00
Anton Korobeynikov 3c5b3df6a0 Adding codegeneration for StdCall & FastCall calling conventions
llvm-svn: 30549
2006-09-20 22:03:51 +00:00
Chris Lattner b0b8ddd175 add a helper method
llvm-svn: 30452
2006-09-18 04:54:57 +00:00
Anton Korobeynikov 6f7072c66a Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.

llvm-svn: 30446
2006-09-17 20:25:45 +00:00
Chris Lattner f16dc007e6 Add ShiftInst::isLogical/ArithmeticShift methods.
llvm-svn: 30445
2006-09-17 19:29:56 +00:00
Chris Lattner e1496fbb33 Add new SetCondInst::isRelational/isEquality methods. Rename
Instruction::isRelational to Instruction::isComparison.

llvm-svn: 30444
2006-09-17 19:14:47 +00:00
Devang Patel 9ce9df5912 Undo previous check-in.
Reintroduce recursive assignDFSNumber().

llvm-svn: 30380
2006-09-14 21:43:24 +00:00
Anton Korobeynikov d61d39ec53 Adding dllimport, dllexport and external weak linkage types.
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.

llvm-svn: 30374
2006-09-14 18:23:27 +00:00
Devang Patel 23d855b40d Avoid recursion in assignDFSNumber(). Move def from ET-Forest.h
to Dominators.h

llvm-svn: 30309
2006-09-14 01:27:42 +00:00
Chris Lattner 721fc38342 Add new option to leave asm names alone
llvm-svn: 30149
2006-09-07 18:20:41 +00:00
Chris Lattner 2f77922d30 Add explicit doInitialization/doFinalization methods instead of making
the FunctionPassManager redo this for each function.

llvm-svn: 30079
2006-09-04 04:07:39 +00:00
Chris Lattner 5e02f4e141 Count the time for a pass to ReleaseMemory against that pass. Not doing this
was under accounting for the time that livevariables cost

llvm-svn: 30060
2006-09-02 23:09:24 +00:00
Reid Spencer e7141c8be6 For PR387:
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.

llvm-svn: 29934
2006-08-28 01:02:49 +00:00
Chris Lattner 7aa139994f Silence -Woverloaded-virtual warnings.
llvm-svn: 29929
2006-08-28 00:09:00 +00:00
Chris Lattner c2d3d3112e eliminate RegisterOpt. It does the same thing as RegisterPass.
llvm-svn: 29925
2006-08-27 22:42:52 +00:00
Chris Lattner 3c9b2420df Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
llvm-svn: 29921
2006-08-27 22:30:17 +00:00
Chris Lattner fbb46500cf We no longer care whether something is an opt vs analysis pass, only whether
something is a pass vs an analysis group now.  Simplify interfaces.

llvm-svn: 29920
2006-08-27 22:21:55 +00:00
Chris Lattner 3d27be1333 s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
llvm-svn: 29911
2006-08-27 12:54:02 +00:00
Chris Lattner e7134c5f69 Fix PR885
llvm-svn: 29794
2006-08-21 17:20:01 +00:00
Chris Lattner 38e1a09d4d Add dominates/properlyDominates queries to IDom.
llvm-svn: 29456
2006-08-01 22:24:47 +00:00
Chris Lattner 85ea83e821 Add some advice
llvm-svn: 29324
2006-07-27 04:24:14 +00:00
Reid Spencer 421475cd3b For PR780:
1. Move IncludeFile.h to System library
2. Move IncludeFile.cpp to System library
3. #1 and #2 required to prevent cyclic library dependencies for libSystem
4. Convert all existing uses of Support/IncludeFile.h to System/IncludeFile.h
5. Add IncludeFile support to various lib/System classes.
6. Add new lib/System classes to LinkAllVMCore.h
All this in an attempt to pull in lib/System to what's required for VMCore

llvm-svn: 29287
2006-07-26 16:18:00 +00:00
Jim Laskey cc6a7d7ed6 No Need to live in the past.
llvm-svn: 29282
2006-07-26 09:59:01 +00:00
Jim Laskey 4700b1534e Moving this function to a permanent home to prevent a dependency cycle created
by the inline heuristic.  Was preventing llvm-gcc4 from building.

llvm-svn: 29278
2006-07-25 23:22:00 +00:00
Chris Lattner 02b5dcd0ef Fix a race condition in the makefile andrew reported
llvm-svn: 29227
2006-07-20 19:08:27 +00:00
Chris Lattner 24fe771dd3 Fix PR835 so that touching tblgen in a way that doesn't affect intrinsic
generation does not rebuild files that just use intrinsic info.

llvm-svn: 29217
2006-07-20 16:44:21 +00:00
Jim Laskey c03caef847 Reduce the size of Constants.o by 25% by generalizing specific instantiations of
std::map.

llvm-svn: 29163
2006-07-17 17:38:29 +00:00
Chris Lattner 227816348c Add a new helper, simplify ConstantExpr::getWithOperandReplaced at Gabor's
request :)

llvm-svn: 29148
2006-07-14 22:20:01 +00:00
Chris Lattner 7c1018aef7 Add a new method for bugpoint to use
llvm-svn: 29143
2006-07-14 19:37:40 +00:00
Chris Lattner b7e1ef54af Fix PR826, testcase here: Regression/Verifier/2006-07-11-StoreStruct.ll
llvm-svn: 29112
2006-07-11 20:29:49 +00:00
Jim Laskey 6c72aa7411 1. Support for c++ mangled names.
2. Support for private/protected class members.

llvm-svn: 29104
2006-07-11 15:58:09 +00:00
Chris Lattner 3d40daa474 Change the ModuleProvider interface to not throw exceptions.
llvm-svn: 29024
2006-07-06 21:35:01 +00:00
Chris Lattner 5734e8d7c3 Change the verifier to never throw an exception. Instead verifyModule canoptionally return the string error, which is an easier api for clients touse anyway.
llvm-svn: 29017
2006-07-06 18:02:27 +00:00
Chris Lattner d6cba04607 Use hidden visibility to reduce codesize
llvm-svn: 28974
2006-06-28 22:57:00 +00:00
Chris Lattner 02157b0627 Use hidden visibility to reduce the sizes of some .o files. This chops 60K off a release llvm-dis.
llvm-svn: 28969
2006-06-28 21:38:54 +00:00
Chris Lattner 6a871e1b64 Add more anonymous namespaces to make it clear that these are private classes
llvm-svn: 28901
2006-06-21 18:13:36 +00:00
Chris Lattner 1c12a881fb Add some out-of-line virtual dtors so that the class has a "home", preventing
vtables for (e.g.) Instruction from being emitted into every .o file.

llvm-svn: 28898
2006-06-21 16:53:47 +00:00
Jim Laskey 90cd68acc6 Handle versioning of compile unit.
llvm-svn: 28855
2006-06-19 12:54:15 +00:00
Jim Laskey 8dd21436db Forgot operands were hard coded for compile unit.
llvm-svn: 28846
2006-06-16 23:36:12 +00:00
Owen Anderson 4e744af80c When asked not to delete useless PHIs, really don't delete them, no matter how
redundant they are.

llvm-svn: 28777
2006-06-14 04:43:14 +00:00
Chris Lattner bfd0b6d8e4 Add a missing assertion that would have helped out Reid
llvm-svn: 28746
2006-06-10 04:16:23 +00:00
Vladimir Prus 9bc4009e9b Remove dead code.
llvm-svn: 28725
2006-06-08 16:03:13 +00:00
Vladimir Prus b5b6dc49e2 New method BasicBlock::getFirstNonPHI.
llvm-svn: 28724
2006-06-08 15:46:18 +00:00
Reid Spencer 5113dc5cfe For PR780:
1. Add #includes to LinkAllVMCore.h to get Mangler.o and InlineAsm.o
2. Make Mangler.h and InlineAsm.h use the macros to ensure linkage
3. Make each of the tools with --load options include LinkAllVMCore.h
This should be the last set of changes for this bug and 800.

llvm-svn: 28719
2006-06-07 23:03:13 +00:00
Chris Lattner 5bd30fa310 Add a virtual dtor to the InlineAsm class so that the principle method of
the class can be defined in InlineAsm.cpp

llvm-svn: 28718
2006-06-07 22:47:44 +00:00
Reid Spencer be535661cc For PR780:
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
   with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.

llvm-svn: 28715
2006-06-07 22:00:26 +00:00
Reid Spencer 54cb2d8533 For PR780:
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.

llvm-svn: 28709
2006-06-07 20:00:19 +00:00
Reid Spencer 5861659a1e Change from using a stub function to a stub variable for passing to the
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.

llvm-svn: 28621
2006-06-01 07:02:51 +00:00
Reid Spencer a647c7ff42 Use archive libraries instead of object files for VMCore, BCReader,
BCWriter, and bzip2 libraries. Adjust the various makefiles to accommodate
these changes. This was done to speed up link times.

llvm-svn: 28610
2006-06-01 01:30:27 +00:00
Reid Spencer 9fef163d19 Make the getNamedFunction and getNamedGlobal methods be const. They don't
change the module in any way and we should enforce that.

llvm-svn: 28588
2006-05-31 16:40:28 +00:00
Reid Spencer 82ebabafde Provide a simpler interface for getting a ConstantArray from a character
string. Instead of specifying the length, just specify whether the user
wants a terminating null or not. The default is "true" to retain the same
behavior as previously provided by this function.

llvm-svn: 28562
2006-05-30 18:15:07 +00:00
Reid Spencer b0cffafb59 Undo a patch that breaks llvm-as because the warning message is written to
stdout when the output of llvm-as is also written to stdout. We'll have to
fix tcl some other way.

llvm-svn: 28557
2006-05-30 16:34:59 +00:00
Reid Spencer b5c64fc3b6 Write the WARNING message to cout instead of cerr. Writing to cerr causes
Tcl to claim that the program had an error and thus produces errors in
the dejagnu testing when its really just a warning.

llvm-svn: 28556
2006-05-30 16:05:59 +00:00
Reid Spencer 6f61453ff8 Adjust the interface to ConstantArray::get. The previous
implementation always added a null byte to the end of the string. It turns
out that this is not always wanted. By adding a length parameter we preserve
this behavior when length==0 (default value) but also allow other lengths
(not null terminated) to be created.

llvm-svn: 28552
2006-05-30 08:23:18 +00:00
Vladimir Prus 5150b763ce Reset DEBUG_SYMBOL_TABLE back to 0.
llvm-svn: 28538
2006-05-29 12:54:52 +00:00
Vladimir Prus f10bbd052d Fix compile error when DEBUG_SYMBOL_TABLE is defined.
llvm-svn: 28537
2006-05-29 12:45:15 +00:00
Reid Spencer edcf47ea45 Fix grammar in a comment.
llvm-svn: 28534
2006-05-29 02:34:34 +00:00
Chris Lattner aa2372562e Patches to make the LLVM sources more -pedantic clean. Patch provided
by Anton Korobeynikov!  This is a step towards closing PR786.

llvm-svn: 28447
2006-05-24 17:04:05 +00:00
Chris Lattner 29d2085716 Print csretcc calls like this:
call csretcc void %structret( { sbyte }* %P )

instead of this:

        callcsretcc  void %structret( { sbyte }* %P )

llvm-svn: 28412
2006-05-19 21:58:52 +00:00
Chris Lattner 3ea816fa48 pretty print csretcc for calls
llvm-svn: 28410
2006-05-19 21:54:03 +00:00
Chris Lattner 5bdc7127af Asmprint csret nicely
llvm-svn: 28408
2006-05-19 21:29:57 +00:00
Chris Lattner ef13ee3281 csret functions can be varargs (as can target cc's). Verify restrictions on
csret functions.

llvm-svn: 28405
2006-05-19 21:25:17 +00:00
Owen Anderson 08aecf56e7 Fix some think-o's in my last commit. Thanks to Chris for pointing them out.
llvm-svn: 28380
2006-05-18 05:46:08 +00:00
Owen Anderson 9eb1a268c1 Change Module to use TargetData-compatible strings internally.
This is part of the on-going work on PR 761.

llvm-svn: 28379
2006-05-18 02:10:31 +00:00
Chris Lattner 96749c4cec inverted logic, caught by coverity
llvm-svn: 28290
2006-05-14 18:46:52 +00:00
Chris Lattner 47a6e63696 remove dead var
llvm-svn: 28287
2006-05-14 18:34:36 +00:00
Chris Lattner bb7ff6690f Add an assertion for a common error
llvm-svn: 28210
2006-05-10 04:32:43 +00:00
Chris Lattner 667a056e11 Add assertions that verify that the actual arguments to a call or invoke match
the prototype of the called function.

llvm-svn: 28070
2006-05-03 00:48:22 +00:00
Chris Lattner 28ead23d1c Remove a hack required by V9.
llvm-svn: 27931
2006-04-21 15:33:35 +00:00
Chris Lattner 0875d94567 Move these ctors out of line
llvm-svn: 27713
2006-04-14 22:20:32 +00:00
Reid Spencer ef56d92d6c Don't print out the install command for Intrinsics.gen unless VERBOSE mode.
llvm-svn: 27696
2006-04-14 06:32:31 +00:00
Reid Spencer 175d57c4bc Don't emit useless warning messages.
llvm-svn: 27617
2006-04-12 17:56:16 +00:00
Chris Lattner a93b4b5866 Add constant replacement for insertelement/vectorshuffle constant exprs
llvm-svn: 27532
2006-04-08 05:09:48 +00:00
Chris Lattner 38c4cb2f9e Use the isValidOperands helper instead of duplicating checking code
llvm-svn: 27524
2006-04-08 04:07:52 +00:00
Chris Lattner 54865b39ab Add methods to check insertelement/extractelement instructions for validity,
check validity when instructions are created.

llvm-svn: 27523
2006-04-08 04:05:48 +00:00
Chris Lattner bbe0a4248b Add shufflevector support, todo, implement better constant folding.
llvm-svn: 27510
2006-04-08 01:18:18 +00:00
Chris Lattner e4f9d7b23c Constant fold extractelement(zero, x) -> zero
llvm-svn: 27479
2006-04-07 04:44:06 +00:00
Andrew Lenharth 477169e36a Move this to lib/Analysis.
This reduces Core size, yay.

llvm-svn: 27468
2006-04-06 22:58:58 +00:00
Chris Lattner 7ee10dec05 vector casts never reinterpret bits
llvm-svn: 27354
2006-04-02 05:40:28 +00:00
Chris Lattner 6b3f475d23 Constant fold casts from things like <4 x int> -> <4 x uint>, likewise int<->fp.
llvm-svn: 27336
2006-04-02 01:38:28 +00:00
Chris Lattner e52f29b243 constant fold extractelement with undef operands.
llvm-svn: 27301
2006-03-31 18:31:40 +00:00
Jeff Cohen e45355218f Fix build breakage.
llvm-svn: 27292
2006-03-31 07:22:05 +00:00
Chris Lattner b37dfd631c Add a new method to verify intrinsic function prototypes.
llvm-svn: 27282
2006-03-31 04:46:47 +00:00
Jim Laskey 7092888bcc Bullet proof against undefined args produced by upgrading ols-style debug info.
llvm-svn: 27155
2006-03-26 22:46:27 +00:00
Chris Lattner 563c7022a5 Update dependencies to reflect split of the Intrinsics.td file
llvm-svn: 27144
2006-03-26 07:45:48 +00:00
Chris Lattner e8e7ac465d Teach BinaryOperator::createNot to work with packed integer types
llvm-svn: 27124
2006-03-25 21:54:21 +00:00