Commit Graph

8539 Commits

Author SHA1 Message Date
Chris Lattner
c4f8226aaf Emit x86 instructions for: A = B op C, where A and B are 16-bit registers,
C is a constant which can be sign-extended from 8 bits without value loss,
and op is one of: add, sub, imul, and, or, xor.

This allows the JIT to emit the one byte version of the constant instead of
the two or 4 byte version.  Because these instructions are very common, this
can save a LOT of code space.  For example, I sampled two benchmarks, 176.gcc
and 254.gap.

BM        Old     New    Reduction
176.gcc 2673621 2548962  4.89%
254.gap  498261  475104  4.87%

Note that while the percentage is not spectacular, this did eliminate
124.6 _KILOBYTES_ of codespace from gcc.  Not bad.

Note that this doesn't effect the llc version at all, because the assembler
already does this optimization.

llvm-svn: 9284
2003-10-20 05:53:31 +00:00
Chris Lattner
bdc522f19d Hrm, a relic from the past. How cute :)
llvm-svn: 9283
2003-10-20 05:45:49 +00:00
Chris Lattner
c83d8249cb Further cleanups and simplifications
llvm-svn: 9282
2003-10-20 04:48:06 +00:00
Chris Lattner
fce0650cee Eliminate code for pointer size and endianness emulation.
llvm-svn: 9281
2003-10-20 04:11:23 +00:00
Misha Brukman
be506fc1c5 The Grammar Police was here.
llvm-svn: 9280
2003-10-20 04:03:10 +00:00
Misha Brukman
f6a30433c7 * Fixed grammar in header
* Added description of `mem2reg'

llvm-svn: 9279
2003-10-20 03:59:05 +00:00
Chris Lattner
5a577c0b28 * Rename X86::IMULr16 -> X86::IMULrr16
* Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an
  extra copy into a register, reducing register pressure.

llvm-svn: 9278
2003-10-20 03:42:58 +00:00
Chris Lattner
091340ca13 Don't bother forwarding function references which are external to the program entirely
llvm-svn: 9274
2003-10-19 23:32:50 +00:00
Chris Lattner
3a0b78c289 Ok, return an explicit path to the shared object, unbreaking code generator
debugging with the JIT

llvm-svn: 9273
2003-10-19 21:54:13 +00:00
Chris Lattner
84a991bc86 Fix iterator invalidation problem
llvm-svn: 9272
2003-10-19 21:48:27 +00:00
Chris Lattner
7a4e225f37 Eliminate unused class
llvm-svn: 9270
2003-10-19 21:39:41 +00:00
Chris Lattner
87843f87b8 Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
97433b8e95 Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
This allows removal of a special case from the instvisitor

llvm-svn: 9268
2003-10-19 21:34:11 +00:00
Chris Lattner
3d519c7bab * Multiplications by 2^X are turned into shifts. This factors code out of the
getelementptr code path for use by other code paths (like malloc and alloca).
* Optimize comparisons with zero
* Generate neg, not, inc, and dec instructions, when possible.

This gives some code size wins, which might translate into performance.  We'll
see tommorow in the nightly tester.

llvm-svn: 9267
2003-10-19 21:09:10 +00:00
Chris Lattner
57825f087d Add some new instructions. Wheee
llvm-svn: 9266
2003-10-19 19:25:35 +00:00
Brian Gaeke
db147d9518 Change it to match llvmgcc.html ... why do we have separate pages for these two?
llvm-svn: 9265
2003-10-19 18:23:05 +00:00
Brian Gaeke
88418331a9 Clarify the roles of gccld and gccas.
Mention that they should really read the gcc manual.

llvm-svn: 9264
2003-10-19 18:15:18 +00:00
Brian Gaeke
7905c65733 Minor edits; also expand description of '-v' option.
llvm-svn: 9263
2003-10-19 18:09:24 +00:00
Brian Gaeke
30757a00b5 Tweak -plugin description to match bugpoint.html
llvm-svn: 9262
2003-10-19 18:08:57 +00:00
Brian Gaeke
2008cfe5ed Mostly rewritten.
llvm-svn: 9261
2003-10-19 18:03:11 +00:00
Chris Lattner
b121b83750 A minor fix
llvm-svn: 9260
2003-10-19 17:37:33 +00:00
Brian Gaeke
d77898b36a Take out extra paragraph tag.
llvm-svn: 9259
2003-10-19 17:37:12 +00:00
Brian Gaeke
32af55ebfe Make this (-run) set look like the other (-disable) set.
llvm-svn: 9258
2003-10-19 17:35:35 +00:00
Brian Gaeke
49bf38f650 Always say "the test program", part 2.
Refer to the various "modules" of bugpoint as "debuggers", not
 "debugging modes" or "modules". I think this is more evocative of
 how they typically act, and it's shorter.
Add a note about how a linker bug can crash bugpoint early.

llvm-svn: 9257
2003-10-19 17:30:36 +00:00
Chris Lattner
c027e8fcec Two minor fixes
llvm-svn: 9256
2003-10-19 17:27:12 +00:00
Brian Gaeke
bdd4bcee15 Minor edits to Description section.
Add Design Philosophy as a separate subsection.  Clarify its last sentence.
Give Automatic Mode Selection a uniquely-named anchor.
Always call the program the "test program", instead of the "initial program",
 the "LLVM program", the "test case", the "resultant module", etc.
Try to explain the assumptions a little more, instead of just describing the
 process.

llvm-svn: 9255
2003-10-19 17:20:15 +00:00
Brian Gaeke
a545ceafad Spell-check.
Many minor edits.
Rewrite some of the options section for grammatical parallelism,
 clarity, and brevity.

llvm-svn: 9254
2003-10-19 17:03:59 +00:00
Chris Lattner
4054f75405 DeHTMLify the email so that it only gets sent out if something changes.
Add printouts about failed building and testing.

llvm-svn: 9253
2003-10-19 16:54:00 +00:00
Chris Lattner
9107ee3a11 .string adds an implicit zero at the end. This is not what we wanted.
This fixes PR#44.

llvm-svn: 9252
2003-10-19 02:51:01 +00:00
Chris Lattner
9a758cd924 Add debugtype, make output marginally more nice
llvm-svn: 9251
2003-10-19 02:27:40 +00:00
Chris Lattner
5c98a2d33a Fix PR #47
llvm-svn: 9250
2003-10-19 02:14:58 +00:00
Chris Lattner
de87c8a892 Fix bug: Jello/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.llx
This also fixes miscompilation of 176.gcc.

llvm-svn: 9249
2003-10-19 00:26:11 +00:00
Chris Lattner
a7adb9cbf2 New testcase, distilled from 176.gcc codegen failure
llvm-svn: 9248
2003-10-18 23:54:45 +00:00
Chris Lattner
008529a320 Update compile information
llvm-svn: 9247
2003-10-18 21:55:47 +00:00
Chris Lattner
babd7c5dfd Add usage blurb
llvm-svn: 9246
2003-10-18 21:55:35 +00:00
Chris Lattner
27798b47fb Without this option, the -run-llc mode does not work with shared objects at
all, making it pointless for use with the code generator debugger.  With it,
it works like a charm.

llvm-svn: 9245
2003-10-18 21:54:47 +00:00
Chris Lattner
e7ba106c53 Add bugpoint advice section
llvm-svn: 9244
2003-10-18 21:34:15 +00:00
Chris Lattner
4aa68a71a7 Print -fno-strict-aliasing as well
llvm-svn: 9243
2003-10-18 21:08:57 +00:00
Chris Lattner
23628ef2fb Don't leave a trail of bugpoint-execution-output-* breadcrumbs all over the place
llvm-svn: 9242
2003-10-18 21:02:51 +00:00
Chris Lattner
8aa9d7a872 Expand the --args section
llvm-svn: 9241
2003-10-18 20:57:23 +00:00
Chris Lattner
a4b1041fc0 * Add the -additional-so option
* Add info about codegen and miscompilation mode

llvm-svn: 9240
2003-10-18 20:54:37 +00:00
Chris Lattner
af764921bf Beef up the description of bugpoint a lot. Update for renamed options
llvm-svn: 9239
2003-10-18 20:36:15 +00:00
Chris Lattner
6dc01b06f7 Change run-lli -> run-int
Many people associate lli with the jit, so we don't want to suprise them

llvm-svn: 9238
2003-10-18 20:30:48 +00:00
Chris Lattner
aea6238a66 Default to using the CBE instead of the Interpreter if no -run-* option is specified
llvm-svn: 9237
2003-10-18 20:18:20 +00:00
Chris Lattner
620cb7e35a Fix warning
llvm-svn: 9236
2003-10-18 19:48:10 +00:00
Chris Lattner
b06ba9f4b3 Print stuff to stdout if something changes.
llvm-svn: 9235
2003-10-18 19:31:39 +00:00
Chris Lattner
a65c470b02 If we detect a pass crash during miscompilation testing, immediately enter the
crash debugger

llvm-svn: 9234
2003-10-18 19:27:48 +00:00
Chris Lattner
3ff64cf568 add support for new linkage types
llvm-svn: 9228
2003-10-18 06:30:21 +00:00
Chris Lattner
e4a69325ff Fix PR#50
llvm-svn: 9227
2003-10-18 06:14:59 +00:00
Chris Lattner
29825508f0 Add support for the new varargs intrinsics and instructions
llvm-svn: 9226
2003-10-18 05:57:43 +00:00