Chris Lattner [Sat, 26 Jul 2003 22:56:46 +0000 (22:56 +0000)]
Remove #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7339
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 22:26:17 +0000 (22:26 +0000)]
Simplify some makefile magic, no functional changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7336
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 21:13:16 +0000 (21:13 +0000)]
Add fixmes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7335
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 21:12:15 +0000 (21:12 +0000)]
(1) Major fix to the way unused regs. are marked and found for the FP
Single and FP double reg types (which share the same reg class).
Now all methods marking/finding unused regs consider the regType
within the reg class, and SparcFloatRegClass specializes this code.
(2) Remove machine-specific regalloc. methods that are no longer needed.
In particular, arguments and return value from a call do not need
machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
overloading when an include file is omitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7334
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 21:09:42 +0000 (21:09 +0000)]
This test has been automatized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 21:09:20 +0000 (21:09 +0000)]
Update to use more modern graph checker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 21:09:11 +0000 (21:09 +0000)]
New testcase, an automatized version of Vikrams ggcollapse.c file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7331
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 21:08:58 +0000 (21:08 +0000)]
1. Fix a case that was marking the invalid reg. num. (-1) as used,
causing a nasty array bound error later.
2. Fix silly typo causing logical shift of unsigned long to use
SRL instead of SRLX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7330
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 21:06:09 +0000 (21:06 +0000)]
(1) Change the way unused regs. are marked and found to consider regType
info (since multiple reg types may share the same reg class).
(2) Remove machine-specific regalloc. methods that are no longer needed.
In particular, arguments and return value from a call do not need
machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
overloading when an include file is omitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7329
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 21:01:43 +0000 (21:01 +0000)]
Change the way unused regs. are marked and found to consider regType
info (since multiple reg types may share the same reg class).
Remove machine-specific regalloc. methods that are no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7328
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 21:00:13 +0000 (21:00 +0000)]
Remove unused field. Change the way unused regs. are marked and
found to consider regType info (since multiple reg types may share
the same reg class, e.g., single and double on Sparc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7327
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 20:58:57 +0000 (20:58 +0000)]
Add an assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7326
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 20:55:08 +0000 (20:55 +0000)]
Remove testcase which has been automatized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 20:53:58 +0000 (20:53 +0000)]
Checkin of Vikram's ggfuncptr.c test adapted for automatic checking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7324
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 20:49:29 +0000 (20:49 +0000)]
Dont' try to parse the colon
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7323
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 20:45:40 +0000 (20:45 +0000)]
Add a more general check-flags which can be used to ensure arbitrary flags are set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7322
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 25 Jul 2003 20:21:20 +0000 (20:21 +0000)]
Include llvm/Support/Mangler.h first. Don't include <iostream>, <set>,
<string>, or llvm/Value.h. Move up the inclusion of llvm/Support/Mangler.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7321
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 25 Jul 2003 20:21:06 +0000 (20:21 +0000)]
Don't include llvm/SlotCalculator.h, or <set>.
Move up the inclusion of llvm/Support/Mangler.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7320
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 25 Jul 2003 20:20:53 +0000 (20:20 +0000)]
Forward-declare class Module to make the header file self-contained.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 18:06:53 +0000 (18:06 +0000)]
More cassert inclusion for GCC 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7318
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 18:05:51 +0000 (18:05 +0000)]
Change reference to assert.h to mention cassert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 18:05:38 +0000 (18:05 +0000)]
Brian implemented the static compiler, take it off the list
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7316
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:58:41 +0000 (17:58 +0000)]
#include <cassert> as necessary...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7315
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:49:28 +0000 (17:49 +0000)]
Fix another accessibility problem illuminated by GCC 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:46:25 +0000 (17:46 +0000)]
Fix visibility problem exposed by GCC 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:39:33 +0000 (17:39 +0000)]
Remove inline declarations that GCC 3.3 doesn't like without a body
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:35:03 +0000 (17:35 +0000)]
Regardless of whether C provides assert.h, C++ source can always include
<cassert>, making this header unneeded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7311
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:34:17 +0000 (17:34 +0000)]
Use the C++ <cassert> header, not the C <assert.h> header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:33:45 +0000 (17:33 +0000)]
This header works with GCC 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:32:51 +0000 (17:32 +0000)]
Use C++ headers, not C headers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:23:27 +0000 (17:23 +0000)]
Add includes of assert
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 17:23:13 +0000 (17:23 +0000)]
Fix accessibility problems GCC 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 16:47:07 +0000 (16:47 +0000)]
Add assert.h include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 25 Jul 2003 15:08:08 +0000 (15:08 +0000)]
Convert to C++ style comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7304
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Fri, 25 Jul 2003 14:06:13 +0000 (14:06 +0000)]
Include vector into these two files to ensure that specializations like
stl_bvector.h are correctly included into *anything* that includes hash_map
or hash_set. ext/hash_map includes stl_vector.h directly and leaves
out the specializations, causing truly nasty bugs due to inconsistent
versions of vector<> being used for vector<bool> in different files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7303
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 24 Jul 2003 21:59:10 +0000 (21:59 +0000)]
Made a bunch of cleanups, as per Chris' recommendations:
* Removed unused global and member variables
* Fixed comments (CodeGeneratorBug.cpp)
* Check for possibly failing GCC::create() and CBE::create()
* Remove generated files after diffing the output (e.g., shared object)
* Instead of using std::for_each, use explicit loops as std::for_each may
duplicate the functor, and ours carries state
* Changed member var from cl::opt<std::string> to just std::string
* Fixed doxygen comments
* Fixed string comparisons to use [ str.empty() ] instead of [ str == "" ]
* Cache instances of CBE and GCC in BugDriver across compilations and executions
while testing tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7302
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 24 Jul 2003 21:37:57 +0000 (21:37 +0000)]
Cleanups:
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
Make Count an unsigned int, and use utostr().
Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line. Include <set>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7301
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 24 Jul 2003 20:20:58 +0000 (20:20 +0000)]
Factor out name-mangling from X86/Printer, which is derived from CWriter,
into this new support class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7300
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 24 Jul 2003 20:20:44 +0000 (20:20 +0000)]
Use unified CWriter-X86/Printer name mangler. Do not bother using
SlotCalculator in CWriter. (Unfortunately, all this means a lot of
X86/Printer's methods have to be de-constified again. Oh well.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 19:44:51 +0000 (19:44 +0000)]
More testcases, which I'll implement later
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7298
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 19:42:28 +0000 (19:42 +0000)]
Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7297
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 19:31:08 +0000 (19:31 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 18:38:56 +0000 (18:38 +0000)]
Instcombine: (A >> c1) << c2 for signed integers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 18:38:09 +0000 (18:38 +0000)]
New testcases for signed shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7294
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 24 Jul 2003 18:17:43 +0000 (18:17 +0000)]
Major addition to bugpoint: ability to debug code generators (LLC and LLI).
The C backend is assumed correct and is used to generate shared objects to be
loaded by the other two code generators.
LLC debugging should be functional now, LLI needs a few more additions to work,
the major one is renaming of external functions to call the JIT lazy function
resolver.
Bugpoint now has a command-line switch -mode with options 'compile' and
'codegen' to debug appropriate portions of tools.
ExecutionDriver.cpp: Added implementations of AbstractInterpreter for LLC and
GCC, broke out common code within other tools, and added ability to generate C
code with CBE individually, without executing the program, and the GCC tool can
generate executables shared objects or executables.
If no reference output is specified to Bugpoint, it will be generated with CBE,
because it is already assumed to be correct for the purposes of debugging using
this method. As a result, many functions now accept as an optional parameter a
shared object to be loaded in, if specified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 17:52:58 +0000 (17:52 +0000)]
Reorganization of code, no functional changes.
Now it shoudl be a bit more efficient
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7292
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 24 Jul 2003 17:48:53 +0000 (17:48 +0000)]
It doesn't appear that we need to #include these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 17:35:25 +0000 (17:35 +0000)]
Allow folding several instructions into casts, which can simplify a lot
of codes. For example,
short kernel (short t1) {
t1 >>= 8; t1 <<= 8;
return t1;
}
became:
short %kernel(short %t1.1) {
%tmp.3 = shr short %t1.1, ubyte 8 ; <short> [#uses=1]
%tmp.5 = cast short %tmp.3 to int ; <int> [#uses=1]
%tmp.7 = shl int %tmp.5, ubyte 8 ; <int> [#uses=1]
%tmp.8 = cast int %tmp.7 to short ; <short> [#uses=1]
ret short %tmp.8
}
before, now it becomes:
short %kernel(short %t1.1) {
%tmp.3 = shr short %t1.1, ubyte 8 ; <short> [#uses=1]
%tmp.8 = shl short %tmp.3, ubyte 8 ; <short> [#uses=1]
ret short %tmp.8
}
which will become:
short %kernel(short %t1.1) {
%tmp.3 = and short %t1.1, 0xFF00
ret short %tmp.3
}
This implements cast-set.ll:test4 and test5
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 24 Jul 2003 17:31:56 +0000 (17:31 +0000)]
Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7289
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 24 Jul 2003 17:30:45 +0000 (17:30 +0000)]
Constify most methods. We could have constified doInitialization and
doFinalization too except that would have made them shadow, not override,
the parent class :-P.
Allow *any* constant cast expression between pointers and longs,
or vice-versa, or any widening (not just same-size) conversion that
isLosslesslyConvertibleTo approves. This fixes oopack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 23:28:57 +0000 (23:28 +0000)]
Disable sample project until it works
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7287
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 23:21:08 +0000 (23:21 +0000)]
Add new tests, make existing tests more difficult
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7286
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 22:03:18 +0000 (22:03 +0000)]
Fix bug: FunctionResolve/2003-07-23-CPR-Reference.ll
This fixes a long time annoyance which caused prototypes for bzero, bcopy,
bcmp, fputs, and fputs_unlocked to never get deleted. Grr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7285
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 22:02:39 +0000 (22:02 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7284
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:41:57 +0000 (21:41 +0000)]
Add comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7283
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:37:07 +0000 (21:37 +0000)]
Remove explicit check for: not (not X) = X, it is already handled because xor is commutative
- InstCombine: (X & C1) ^ C2 --> (X & C1) | C2 iff (C1&C2) == 0
- InstCombine: (X | C1) ^ C2 --> (X | C1) & ~C2 iff (C1&C2) == C2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7282
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:36:01 +0000 (21:36 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7281
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:11:56 +0000 (21:11 +0000)]
Renumber tests sequentially
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7280
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:10:55 +0000 (21:10 +0000)]
Split the or and xor tests into two separate files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7279
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 21:06:34 +0000 (21:06 +0000)]
Remove obscure test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7278
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 20:48:03 +0000 (20:48 +0000)]
Check in old testcase sitting in my tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7277
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 20:45:31 +0000 (20:45 +0000)]
Fix program: SingleSource/UnitTests/2003-07-09-SignedArgs with the CBE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7276
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 23 Jul 2003 20:25:08 +0000 (20:25 +0000)]
Printer.cpp: Ditch addRequired/getAnalysis, because they leave
Printer::doFinalization() out in the cold. Now we pass in a TargetMachine
to Printer's constructor and get the TargetData from the TargetMachine.
Don't pass TargetMachine or MRegisterInfo objects around in the Printer.
Constify TargetData references.
X86.h: Update comment and prototype of createX86CodePrinterPass().
X86TargetMachine.cpp: Update callers of createX86CodePrinterPass().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7275
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 20:21:30 +0000 (20:21 +0000)]
Make Module::getNamedFunction prefer non-external functions if there is more than
one function of the same name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7274
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 20:21:06 +0000 (20:21 +0000)]
Fix space
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7273
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 19:36:21 +0000 (19:36 +0000)]
InstCombine: (X ^ C1) & C2 --> (X & C2) iff (C1&C2) == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7272
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 19:35:51 +0000 (19:35 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 19:25:52 +0000 (19:25 +0000)]
- InstCombine: (X | C1) & C2 --> X & C2 iff C1 & C1 == 0
- InstCombine: (X | C) & C --> C
- InstCombine: (X | C1) & C2 --> (X | (C1&C2)) & C2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7269
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 19:24:34 +0000 (19:24 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7267
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 19:05:29 +0000 (19:05 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7266
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 23 Jul 2003 18:37:06 +0000 (18:37 +0000)]
Add, rewrite, and/or reformat many comments.
Stop passing ostreams around: we already have one perfectly good ostream
and we can all share it.
Stop stashing a pointer to TargetData in the Pass object, because that will
lead to a crash if there are no functions in the module (ouch!) Instead,
use addRequired() and getAnalysis(), like we always should have done.
Move the check for ConstantExpr up before the check for isPrimitiveType,
because we need to be able to catch e.g. ubyte (cast bool false to ubyte),
whose type is primitive but which is nevertheless a ConstantExpr, by calling
our specialized handler instead of the AsmWriter. This would result in
assembler errors when we would try to output something like ".byte (cast
bool false to ubyte)".
GC some unused variable declarations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 18:29:44 +0000 (18:29 +0000)]
IC: (X & C1) | C2 --> (X | C2) & (C1|C2)
IC: (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)
We are now guaranteed that all 'or's will be inside of 'and's, and all 'and's
will be inside of 'xor's, if the second operands are constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 18:28:42 +0000 (18:28 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:57:01 +0000 (17:57 +0000)]
IC: (X ^ C1) & C2 --> (X & C2) ^ (C1&C2)
Minor code cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7262
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:56:34 +0000 (17:56 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7261
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:26:36 +0000 (17:26 +0000)]
InstCombine: (X ^ 4) == 8 --> X == 12
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7260
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:25:55 +0000 (17:25 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7259
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:21:17 +0000 (17:21 +0000)]
Add support for ~ operator on constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7258
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:02:11 +0000 (17:02 +0000)]
IC: (X & 5) == 13 --> false
IC: (X | 8) == 4 --> false
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7257
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 17:01:18 +0000 (17:01 +0000)]
New tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7256
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 23 Jul 2003 16:52:50 +0000 (16:52 +0000)]
Renamed libtool to mklib for your tab completion pleasure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7255
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:30:32 +0000 (15:30 +0000)]
Remove redundant const qualifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7254
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:30:06 +0000 (15:30 +0000)]
Remove redundant const qualifiers from cast<> expressions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7253
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:22:26 +0000 (15:22 +0000)]
Simplify code by using ConstantInt::getRawValue instead of checking to see
whether the constant is signed or unsigned, then casting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7252
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:17:51 +0000 (15:17 +0000)]
Remove unnecessary casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:17:01 +0000 (15:17 +0000)]
Fit code into 80 columns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 15:16:40 +0000 (15:16 +0000)]
Eliminate old-style cast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7248
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 14:59:40 +0000 (14:59 +0000)]
Random cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7247
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 14:55:59 +0000 (14:55 +0000)]
Remove using decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7246
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 14:54:33 +0000 (14:54 +0000)]
Remove explicit const qualifiers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7245
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 14:49:06 +0000 (14:49 +0000)]
Add more doxygen comments, add new ConstantInt::getRawValue method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 03:32:41 +0000 (03:32 +0000)]
Fix bug: TailDup/2003-07-22-InfiniteLoop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 23 Jul 2003 03:32:11 +0000 (03:32 +0000)]
New testcase that caused infinite loop in taildup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Jul 2003 21:46:59 +0000 (21:46 +0000)]
- InstCombine (cast (xor A, B) to bool) ==> (setne A, B)
- InstCombine (cast (and X, (1 << size(X)-1)) to bool) ==> x < 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7241
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 22 Jul 2003 21:44:06 +0000 (21:44 +0000)]
New testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7240
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 22 Jul 2003 21:00:24 +0000 (21:00 +0000)]
Repaired the --enable and --disable options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7239
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 22 Jul 2003 20:59:52 +0000 (20:59 +0000)]
Fixed the enable/disable options. The AC_ARG_ENABLE macro does not perform
the *action-if-not-given* code when the --disable option is used.
Rather, the AC_ARG_ENABLE macro sets the $enableval variable, which then needs
to be checked to determine if --enable, --disable, or neither was specified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7238
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 22 Jul 2003 20:53:20 +0000 (20:53 +0000)]
Add documentation for runOnMachineFunction()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7237
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 22 Jul 2003 20:07:49 +0000 (20:07 +0000)]
Made some corrections to the enable-llc_diffs option.
This should keep it from breaking for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7236
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 22 Jul 2003 19:18:09 +0000 (19:18 +0000)]
Generated a new configure script.
This script uses files within the new autoconf subdirectory and includes
changes from Brian Gaeke's recent changes to configure.ac.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7235
91177308-0d34-0410-b5e6-
96231b3b80d8