Commit Graph

16180 Commits

Author SHA1 Message Date
Chris Lattner ec58903623 counter should be unsigned.
llvm-svn: 32252
2006-12-06 01:50:04 +00:00
Chris Lattner 979804d800 eliminate fp statistic
llvm-svn: 32251
2006-12-06 01:48:55 +00:00
Reid Spencer 876f722fc5 Fix constant folding to deal with external weak global values.
llvm-svn: 32247
2006-12-06 00:25:09 +00:00
Reid Spencer e266dc7621 Regenerate.
llvm-svn: 32246
2006-12-05 23:50:48 +00:00
Reid Spencer 7d9b8a8f03 Remove dead var NewVarArgs.
llvm-svn: 32245
2006-12-05 23:46:41 +00:00
Chris Lattner 6f6b497748 Fix Transforms/InstCombine/2006-12-05-fp-to-int-ext.ll, fixing an out-of-
stack-space issue in the ppc bootstrap.

llvm-svn: 32244
2006-12-05 23:43:59 +00:00
Reid Spencer 2764219e3e Regenerate.
llvm-svn: 32242
2006-12-05 23:29:42 +00:00
Reid Spencer cec21a5592 Dump the old va_arg and va_next upgrade support. No need to keep track of
the current basic block any more either.

llvm-svn: 32241
2006-12-05 23:28:06 +00:00
Reid Spencer 0646eb415d Finally get the casting right in this file. Also, remove some unnecessary
casting because sdiv doesn't require operand signs to match any more.

llvm-svn: 32240
2006-12-05 22:39:58 +00:00
Evan Cheng 47e181cc4d Revert an unintended change.
llvm-svn: 32239
2006-12-05 22:03:40 +00:00
Evan Cheng dd60ca029c - Switch X86-64 JIT to large code size model.
- Re-enable some codegen niceties for X86-64 static relocation model codegen.
- Clean ups, etc.

llvm-svn: 32238
2006-12-05 19:50:18 +00:00
Chris Lattner dd23d3dd05 straighten out various memory ownership issues in the callgraph stuff.
This fixes Regression/Other/2002-01-31-CallGraph.ll.

llvm-svn: 32237
2006-12-05 19:46:12 +00:00
Reid Spencer 844668d2ef Regenerate.
llvm-svn: 32233
2006-12-05 19:16:11 +00:00
Reid Spencer 5bcee9aa1e Remove various old upgrade hacks that are no longer needed.
llvm-svn: 32232
2006-12-05 19:15:41 +00:00
Reid Spencer f37dc65b08 Bail on the getInferredCast idea. Remove the function and convert
remaining uses to more specific casts.

llvm-svn: 32231
2006-12-05 19:14:13 +00:00
Chris Lattner c20b7e878a If we have ScalarSSE, we can select bitconvert into single instructions.
This compiles bitcast.ll:test3/test4 into:

_test3:
        movd %xmm0, %eax
        ret
_test4:
        movd %edi, %xmm0
        ret

llvm-svn: 32230
2006-12-05 18:45:06 +00:00
Chris Lattner 57a41985e3 Add a perf optzn corresponding to PR1033.
llvm-svn: 32229
2006-12-05 18:25:10 +00:00
Chris Lattner 55c17f9177 Fix PR1033 and CodeGen/X86/bitcast.ll, by expanding bitcast to a load/store pair.
This could be better, readme entry pending.

llvm-svn: 32228
2006-12-05 18:22:22 +00:00
Rafael Espindola b5dee63958 expand memmove and memcpy
llvm-svn: 32226
2006-12-05 17:57:23 +00:00
Reid Spencer 1792326daf Eliminate "control reaches end of non-void function" warnings.
llvm-svn: 32225
2006-12-05 17:53:26 +00:00
Rafael Espindola 96fd6447c7 add support for the "r" asm constraint
patch by Lauro Ramos Venancio

llvm-svn: 32224
2006-12-05 17:37:31 +00:00
Chris Lattner a16201c672 Fix typo noticed by Lauro Ramos Venancio, thanks!
llvm-svn: 32223
2006-12-05 17:29:40 +00:00
Rafael Espindola 2369a024d7 add support for weak linkage
llvm-svn: 32222
2006-12-05 17:00:17 +00:00
Evan Cheng 3b235aa5dc JIT large code model support.
llvm-svn: 32220
2006-12-05 07:29:55 +00:00
Reid Spencer a16f930aac Can't make these fail now with just BitCast. Previous failures must have
been in conjunction with something else. By right, they should just be
BitCasts.

llvm-svn: 32219
2006-12-05 07:18:07 +00:00
Evan Cheng 8e0e9fbe7b Asm printing bug.
llvm-svn: 32218
2006-12-05 06:43:58 +00:00
Evan Cheng 62cdc3f011 - Fix X86-64 JIT by temporarily disabling code that treats GV address as 32-bit
immediate in small code model. The JIT cannot ensure GV's are placed in the
lower 4G.
- Some preliminary support for large code model.

llvm-svn: 32215
2006-12-05 04:01:03 +00:00
Evan Cheng 830f224bf5 Update
llvm-svn: 32214
2006-12-05 03:58:23 +00:00
Reid Spencer 27720a962d Remove the last inferred casts from VMCore.
llvm-svn: 32213
2006-12-05 03:30:09 +00:00
Reid Spencer d5a3f0dd1b Implement createPointerCast.
llvm-svn: 32212
2006-12-05 03:28:26 +00:00
Reid Spencer bc245a0190 Implement getPointerCast.
llvm-svn: 32211
2006-12-05 03:25:26 +00:00
Chris Lattner c209b584eb add an instcombine xform. This speeds up 462.libquantum from 9.78s to
7.48s.  This regression is due to unforseen consequences of the cast patch.

llvm-svn: 32209
2006-12-05 01:26:29 +00:00
Devang Patel 21efc73161 SCCP does not handle Packed Type properly. Disable Packed Type handling
for now.

llvm-svn: 32208
2006-12-04 23:54:59 +00:00
Chris Lattner d139ddd2e6 Add support for 64-bit 'r' constraint. Patch by by Rafael ~Avila de Espíndol!
This fixes PR1029 and Regression/CodeGen/X86/x86-64-asm.ll

llvm-svn: 32206
2006-12-04 22:38:21 +00:00
Jim Laskey e4f4d048dd Restoration of the stack pointer after a deallocation of a alloca was not
updating the SP link.

llvm-svn: 32202
2006-12-04 22:04:42 +00:00
Reid Spencer a009d0d59c Separate getCompare from get and getCompareTy from getTy.
llvm-svn: 32200
2006-12-04 21:35:24 +00:00
Reid Spencer e6328cab48 Fix comment grammaro
llvm-svn: 32198
2006-12-04 21:33:23 +00:00
Chris Lattner baf6c54410 Add a comment and fix a memory leak. Thanks to Vikram for pointing this out.
llvm-svn: 32196
2006-12-04 21:22:45 +00:00
Reid Spencer 5c14088844 Implement new cast creation functions for both instructions and constant
expressions. These will get used to reduce clutter as we replace various
calls to createInferredCast and getCast.

llvm-svn: 32191
2006-12-04 20:17:56 +00:00
Reid Spencer dba6aa436a Reduce the size of the ExprMapKeyType class.
llvm-svn: 32186
2006-12-04 18:38:05 +00:00
Evan Cheng 0c2a74a487 Non-darwin gcc should default to static relocation to match gcc.
llvm-svn: 32184
2006-12-04 18:07:10 +00:00
Reid Spencer 1ba24bb1e4 Fix inferred casts.
llvm-svn: 32180
2006-12-04 17:05:42 +00:00
Reid Spencer 561bb36756 Fix 80 cols violation
llvm-svn: 32179
2006-12-04 17:04:44 +00:00
Reid Spencer d2e0c34798 Regenerate.
llvm-svn: 32173
2006-12-04 05:24:24 +00:00
Reid Spencer 15df7d590c For PR950: Implement read/write of ICmp and FCmp constant expressions
llvm-svn: 32172
2006-12-04 05:23:49 +00:00
Reid Spencer f349069f1c For PR950: For ICmp and FCmp constant expressions, put the predicate outiside the parentheses to match what llvm-upgrade generates.
llvm-svn: 32171
2006-12-04 05:20:06 +00:00
Reid Spencer ee3c991a6e For PR950: Fix constant expressions to properly support ICmp and FCmp type expressions.
llvm-svn: 32170
2006-12-04 05:19:50 +00:00
Reid Spencer b471d8edcb For PR950: Implement a stub for folding ICmp and FCmp instructions
llvm-svn: 32169
2006-12-04 05:19:34 +00:00
Reid Spencer 812a1bed3d For PR950: Implement ICmp/FCmp predicate printing for constant expressions
llvm-svn: 32168
2006-12-04 05:19:18 +00:00
Reid Spencer 14fbdd5523 Update call to CastInst::getCastOpcode for its new signature.
llvm-svn: 32166
2006-12-04 02:48:01 +00:00
Reid Spencer 1a06389f06 Change inferred casts to explicit casts.
llvm-svn: 32165
2006-12-04 02:46:44 +00:00
Reid Spencer c4dacf2455 Take a baby step towards getting rid of inferred casts. Provide methods on
CastInst and ConstantExpr that allow the signedness to be explicitly passed
in and reliance on signedness removed from getCastOpcode. These are
temporary measures useful during the conversion of inferred casts.

llvm-svn: 32164
2006-12-04 02:43:42 +00:00
Reid Spencer 3e6b1ce614 Support ICmp/FCmp constant expression reading and writing.
llvm-svn: 32160
2006-12-03 17:17:02 +00:00
Reid Spencer 8a303a7c59 Remove dead code.
llvm-svn: 32157
2006-12-03 16:21:33 +00:00
Reid Spencer 65f19a0eca Regenerate.
llvm-svn: 32156
2006-12-03 16:20:14 +00:00
Reid Spencer 5ef0dbb5b4 Remove useless #include.
llvm-svn: 32155
2006-12-03 16:19:43 +00:00
Reid Spencer 1960ef32ac Regenerate.
llvm-svn: 32152
2006-12-03 06:59:29 +00:00
Reid Spencer cfc7f5dc82 Shorten the FCmp and ICmp mnemonics to 3 letters. Make the parser
disambiguate them.

llvm-svn: 32151
2006-12-03 06:58:07 +00:00
Reid Spencer afafde7b11 Shorten the FCmp predicate mnemonics.
llvm-svn: 32150
2006-12-03 06:35:48 +00:00
Reid Spencer 22504bd638 Implement reading and writing of the ICmp and FCmp instructions.
llvm-svn: 32149
2006-12-03 06:28:54 +00:00
Reid Spencer 45e5239008 Allow the ICmp and FCmp instructions to be written by the AsmWriter
llvm-svn: 32148
2006-12-03 06:27:29 +00:00
Reid Spencer 10fbf0e02f Implement creation of ICmp and FCmp constant expressions.
llvm-svn: 32147
2006-12-03 05:48:19 +00:00
Reid Spencer e953edff7a Remove backwards compatibility goop. This is now handled by llvm-upgrade.
llvm-svn: 32146
2006-12-03 05:47:10 +00:00
Reid Spencer e2c32da075 Regenerate.
llvm-svn: 32145
2006-12-03 05:46:11 +00:00
Reid Spencer 812724efa4 Remove backwards compatibility goop. Now implemented in llvm-upgrade.
llvm-svn: 32144
2006-12-03 05:45:44 +00:00
Jeff Cohen cc08c83186 Unbreak VC++ build.
llvm-svn: 32113
2006-12-02 02:22:01 +00:00
Chris Lattner 7a002fec1f disable transformations that are invalid for fp vectors. This fixes
Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll

llvm-svn: 32112
2006-12-02 00:13:08 +00:00
Chris Lattner 4d9fc5e896 Switch analysis groups to be unregistered when llvm_shutdown is called.
llvm-svn: 32110
2006-12-01 23:46:50 +00:00
Chris Lattner 1b368a0cf6 Start moving pass registration over to using the ManagedStatic mechanism.
This fixes issues where passes get unregistered before llvm_shutdown is
called, and is generally cleaner and simpler.  Analysis groups up next.

llvm-svn: 32108
2006-12-01 23:27:45 +00:00
Chris Lattner 23d540538d move 'cfgonly' pass tracking into PassInfo, instead of handling it with
yet-another global data structure.

llvm-svn: 32102
2006-12-01 22:21:11 +00:00
Evan Cheng 67fc141db5 Match TargetInstrInfo changes.
llvm-svn: 32098
2006-12-01 21:52:58 +00:00
Evan Cheng 07fc107e90 convertToThreeAddress() is now responsible for updating live info as well as inserting the new MI's.
llvm-svn: 32097
2006-12-01 21:52:41 +00:00
Evan Cheng 022030a425 Add weak reference directive.
llvm-svn: 32091
2006-12-01 20:47:11 +00:00
Chris Lattner defd8470aa These should be rewritten to fold without using the 'Rules' mechanism, but
until this happens at least make sext from bool and sitofp from bool do the
right thing.

llvm-svn: 32087
2006-12-01 19:50:54 +00:00
Chris Lattner 710ebaf377 this logic is broken for trunc to bool, replace the folding logic for trunc
completely, as it is trivial.  We should probably do this for the rest of the
cast operations.  This fixes ConstProp/2006-12-01-TruncBoolBug.ll.

llvm-svn: 32081
2006-12-01 19:22:41 +00:00
Chris Lattner f16661c3c6 add a new ConstantIntegral::get method. Simplify the implementation of
ConstantInt::get

llvm-svn: 32080
2006-12-01 19:20:02 +00:00
Evan Cheng b689d32b20 Copy and paste error. An initialized global cannot be a weak reference.
llvm-svn: 32075
2006-12-01 17:39:22 +00:00
Jim Laskey 1b0bc794e6 1. In ppc64 mode we need only use one GPR.
2. Float values need to be promoted to double when they are vararg.

llvm-svn: 32074
2006-12-01 16:30:47 +00:00
Jim Laskey 311622f912 ExternalWeak case in wrong location.
llvm-svn: 32073
2006-12-01 14:37:39 +00:00
Evan Cheng 845bd6e096 Fix 2005-05-08-FPStackifierPHI.ll failure.
llvm-svn: 32071
2006-12-01 10:11:51 +00:00
Evan Cheng 5fb2c76d59 A initialized global variable cannot be extern weak. However, if a global value's initializer is itself a external weak symbol, emit the weak reference.
llvm-svn: 32069
2006-12-01 09:13:26 +00:00
Evan Cheng fa54c0b6fb Darwin PPC external weak linkage support.
llvm-svn: 32068
2006-12-01 07:56:37 +00:00
Evan Cheng 5b020349f2 Minor code clean up.
llvm-svn: 32067
2006-12-01 07:38:23 +00:00
Evan Cheng db66456285 Fix indentation.
llvm-svn: 32066
2006-12-01 07:17:00 +00:00
Evan Cheng 6476a3b4ba Darwin X86 external weak linkage support.
llvm-svn: 32065
2006-12-01 07:15:24 +00:00
Chris Lattner d1d5693149 Fix a typo introduced by the cast patch that horribly broke a lot of vector
code.  Testcase here: Transforms/ConstProp/2006-11-30-vector-cast.ll

llvm-svn: 32062
2006-12-01 05:55:25 +00:00
Reid Spencer 6f05d73938 Don't fold "ptrtoint GV to bool" since this should be doing a truncate not
a comparison against zero. Instead fold setne(GV,null) and seteq(GV,null)
to ConstantBool::True or ConstantBool::False, respectively.

llvm-svn: 32060
2006-12-01 03:56:30 +00:00
Chris Lattner 09ed0ff2ac Fix the CodeGen/PowerPC/vec_constants.ll regression.
llvm-svn: 32057
2006-12-01 01:45:39 +00:00
Reid Spencer d5e19444a7 Regenerate.
llvm-svn: 32053
2006-12-01 00:33:46 +00:00
Anton Korobeynikov 12c94949e0 Introducing external weak linkage. Darwin codegen should be added later.
llvm-svn: 32052
2006-12-01 00:25:12 +00:00
Reid Spencer ad05ee9f39 Remove 4 FIXMEs to hack around cast-to-bool problems which no longer exist.
llvm-svn: 32051
2006-11-30 23:13:36 +00:00
Anton Korobeynikov 6dbdfe2baa Factor out GVRequiresExtraLoad() from .h to .cpp
llvm-svn: 32048
2006-11-30 22:42:55 +00:00
Evan Cheng ae1cd75af7 - Use a different wrapper node for RIP-relative GV, etc.
- Proper support for both small static and PIC modes under X86-64
- Some (non-optimal) support for medium modes.

llvm-svn: 32046
2006-11-30 21:55:46 +00:00
Jim Laskey f52337299a better check for version
llvm-svn: 32045
2006-11-30 18:29:23 +00:00
Chris Lattner c8978c5272 make it clear that this is always a zext
llvm-svn: 32044
2006-11-30 17:35:08 +00:00
Chris Lattner 3ede00b376 One more bugfix, 3 cases of making casts explicit.
llvm-svn: 32043
2006-11-30 17:32:29 +00:00
Chris Lattner 0390b9e6bb Fix a bug in globalopt due to the recent cast patch.
llvm-svn: 32042
2006-11-30 17:26:08 +00:00
Jim Laskey b5b14060a8 Change global descriptor names to provide name, full name and linkage name.
llvm-svn: 32036
2006-11-30 14:35:45 +00:00
Jim Laskey aa2843ad4a Temp fix to deal gdb issue.
llvm-svn: 32035
2006-11-30 11:09:42 +00:00
Evan Cheng aafeaef8c8 MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor
llvm-svn: 32034
2006-11-30 07:12:03 +00:00