Commit Graph

25614 Commits

Author SHA1 Message Date
Chris Lattner 1025840417 Add two helpers for escaping and unescaping strings.
llvm-svn: 29151
2006-07-14 22:54:39 +00:00
Chris Lattner 81e6cc0999 Add two helper functions
llvm-svn: 29150
2006-07-14 22:54:06 +00:00
Chris Lattner 19247f36ea eliminate some ugly code, using ConstantExpr::getWithOperands instead.
llvm-svn: 29149
2006-07-14 22:21:31 +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 d9a2c2a5e7 Add another helper method.
llvm-svn: 29147
2006-07-14 22:19:18 +00:00
Patrick Jenkins 9536ec7f39 Fixed an issue where the user specified gcc was not the gcc we report to the nightly test server.
llvm-svn: 29144
2006-07-14 20:44:09 +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 7a196b73c2 Add a new method for bugpoint to use.
llvm-svn: 29142
2006-07-14 19:37:01 +00:00
Owen Anderson bea70ee1de Hopefully the final attempt at making IndVars preserve LCSSA.
This should fix PR 831.

llvm-svn: 29141
2006-07-14 18:49:15 +00:00
Chris Lattner 96aecb5d76 Add missing PPC64 extload/truncstores
llvm-svn: 29140
2006-07-14 04:42:02 +00:00
Chris Lattner 950dffaed6 Add a note
llvm-svn: 29139
2006-07-14 04:07:29 +00:00
Jim Laskey 4f3db1e542 Bring the Xcode project up to date.
llvm-svn: 29138
2006-07-13 22:17:58 +00:00
Jim Laskey 10d4b040ac Clean up.
llvm-svn: 29137
2006-07-13 22:17:08 +00:00
Chris Lattner 077b86a078 Another fix in the rotate encodings, needed when the first two operands are not
the same.

llvm-svn: 29136
2006-07-13 21:52:41 +00:00
Jim Laskey a44f6269bf 1. Simplfy bit operations.
2. Coalesce instruction cases.

llvm-svn: 29135
2006-07-13 21:02:53 +00:00
Chris Lattner 9b6c02ebe4 Revert this patch temporarily until PR831 is fixed.
llvm-svn: 29134
2006-07-13 19:05:20 +00:00
Patrick Jenkins fd95b6934a Syntax error. I will run perl -c before commiting perl scripts.
llvm-svn: 29133
2006-07-13 16:58:42 +00:00
Patrick Jenkins 26d5bd5bee Fixed some small bugs exposed when trying to get a sparc machine to run the script. Specifically some misnamed variables.
llvm-svn: 29132
2006-07-13 16:56:48 +00:00
Jim Laskey 194bef7ff4 Fixed a bug handling void function types.
Requires rebuild of llvm-gcc4 (touch llvm-debug.cpp.)

llvm-svn: 29131
2006-07-13 15:27:42 +00:00
Chris Lattner b42a945fd2 Print negative immediates as negative values instead of large constants
when using the immshifted addressing mode.

llvm-svn: 29130
2006-07-12 23:24:02 +00:00
Chris Lattner 78731ab1b8 Turn an if into an else if.
llvm-svn: 29129
2006-07-12 22:37:18 +00:00
Chris Lattner dd57ac4871 Fix encoding of rotates, such as rldicl
llvm-svn: 29128
2006-07-12 22:08:13 +00:00
Chris Lattner b3c64f7ab3 Handle instructions in the map, but that map to a null pointer.
This unbreaks smg2000.

llvm-svn: 29127
2006-07-12 21:37:11 +00:00
Owen Anderson dea9202e3b IndVars now (correctly) preserves LCSSA form.
llvm-svn: 29126
2006-07-12 21:29:14 +00:00
Chris Lattner 5b17dee741 Implement PPC64 relocations types
llvm-svn: 29125
2006-07-12 21:23:20 +00:00
Chris Lattner 1ec5e73b32 An overaggressive #ifdef allows a function to fall off the bottom of the
function instead of returning a value.  This sometimes allowed the ppc32 jit
to be used in 64-bit mode.

llvm-svn: 29123
2006-07-12 20:42:10 +00:00
Jim Laskey 23bd480cea Move base value of instruction to lookup table to prepare for case reduction.
llvm-svn: 29122
2006-07-12 19:15:43 +00:00
Chris Lattner 6148456ec2 In addition to deleting calls, the inliner can constant fold them as well.
Handle this case, which doesn't require a new callgraph edge.  This fixes
a crash compiling MallocBench/gs.

llvm-svn: 29121
2006-07-12 18:37:18 +00:00
Chris Lattner 5de3b8b262 Change the callgraph representation to store the callsite along with the
target CG node.  This allows the inliner to properly update the callgraph
when using the pruning inliner.  The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.

This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll

llvm-svn: 29120
2006-07-12 18:29:36 +00:00
Chris Lattner c7012cc9e9 testcase for PR827
llvm-svn: 29119
2006-07-12 18:27:13 +00:00
Chris Lattner c8db10725b Add information preventing several register class constraints from working.
This implements PR828 and CodeGen/X86/2006-07-12-InlineAsmQConstraint.ll

llvm-svn: 29118
2006-07-12 16:59:49 +00:00
Chris Lattner ed5a82b63e Testcase for PR828.
llvm-svn: 29117
2006-07-12 16:59:09 +00:00
Evan Cheng e910c355d3 Fix test failure on non-Apple systems.
llvm-svn: 29116
2006-07-12 06:48:47 +00:00
Chris Lattner 156907198e Remove non-portable optimization that isn't worth it
llvm-svn: 29115
2006-07-12 00:31:47 +00:00
Chris Lattner 6e662083d9 The PPC64 JIT needs register numbers to encode instructions.
llvm-svn: 29114
2006-07-11 20:53:55 +00:00
Chris Lattner fa289940c7 Revamp this doc to be accurate w.r.t. building llvmgcc4
llvm-svn: 29113
2006-07-11 20:47:00 +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
Chris Lattner 7a00b86720 Testcase for PR826
llvm-svn: 29111
2006-07-11 20:29:21 +00:00
Evan Cheng d5a086ab12 Emit inc / dec of registers as one byte instruction.
llvm-svn: 29110
2006-07-11 19:49:49 +00:00
Chris Lattner 4a48245919 Profile builds should always have debug info enabled.
llvm-svn: 29109
2006-07-11 18:33:50 +00:00
Chris Lattner 091b6ea847 Silence a warning produced in assertions-disabled mode
llvm-svn: 29108
2006-07-11 18:31:26 +00:00
Devang Patel d14fd43f4b Fix typo.
llvm-svn: 29107
2006-07-11 18:25:57 +00:00
Jim Laskey f7300b2706 It was pointed out that DEBUG() is only available with -debug.
llvm-svn: 29106
2006-07-11 18:25:13 +00:00
Jim Laskey c3d341ea98 Ensure that dump calls that are associated with asserts are removed from
non-debug build.

llvm-svn: 29105
2006-07-11 17:58:07 +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
Rafael Espindola 185c5c2bdf add the memri memory operand
this makes it possible for ldr instructions with non-zero immediate

llvm-svn: 29103
2006-07-11 11:36:48 +00:00
Owen Anderson 15b1f7d2cd Revert my indvars changes because they were breaking things. Unfortunately this
didn't start showing up until after the recent instcombine fixes.

llvm-svn: 29102
2006-07-11 07:25:33 +00:00
Chris Lattner 298ef37e02 Implement the inline asm 'A' constraint. This implements PR825 and
CodeGen/X86/2006-07-10-InlineAsmAConstraint.ll

llvm-svn: 29101
2006-07-11 02:54:03 +00:00
Chris Lattner 6f5d3531c7 New testcase for PR825.
llvm-svn: 29100
2006-07-11 02:52:37 +00:00
Chris Lattner 1b8ea1f5ba Fix CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll and PR818.
llvm-svn: 29099
2006-07-11 01:40:09 +00:00
Chris Lattner 14f6c70eeb This is fixed
llvm-svn: 29098
2006-07-11 01:39:30 +00:00
Jim Laskey 57e4363171 Reduce bloat in target libraries by removing per machine instruction assertion
from code emitter generation.

llvm-svn: 29097
2006-07-11 01:25:59 +00:00
Chris Lattner 71227c23b1 In 64-bit mode, 64-bit GPRs are callee saved, not 32-bit ones.
llvm-svn: 29096
2006-07-11 00:48:23 +00:00
Owen Anderson bbf8990ef7 Add a comment, and fix a typo that broke the build.
llvm-svn: 29094
2006-07-10 22:15:25 +00:00
Owen Anderson ae8aa646f1 Don't indent the entire function.
llvm-svn: 29093
2006-07-10 22:03:18 +00:00
Evan Cheng fbc80692e4 Update.
llvm-svn: 29092
2006-07-10 21:49:09 +00:00
Evan Cheng 32860f42bb New entry.
llvm-svn: 29091
2006-07-10 21:42:16 +00:00
Evan Cheng 79cf9a5342 Fixed stack objects do not specify alignments, but their offsets are known.
Use that information when doing the transformation to merge multiple loads
into a 128-bit load.

llvm-svn: 29090
2006-07-10 21:37:44 +00:00
Chris Lattner a7976d329e Implement Regression/CodeGen/PowerPC/bswap-load-store.ll by folding bswaps
into i16/i32 load/stores.

llvm-svn: 29089
2006-07-10 20:56:58 +00:00
Chris Lattner a0449c2936 New testcase for folding bswaps into i16/i32 loads and stores.
llvm-svn: 29088
2006-07-10 20:53:53 +00:00
Chris Lattner b7845d69db Recognize 16-bit bswaps by relaxing overconstrained pattern.
This implements Transforms/InstCombine/bswap.ll:test[34].

llvm-svn: 29087
2006-07-10 20:25:24 +00:00
Chris Lattner 3f8aee5fdf Add tests for 16-bit byteswaps.
llvm-svn: 29086
2006-07-10 20:25:01 +00:00
Chris Lattner 9aabc1e16f Mark internal function static
llvm-svn: 29085
2006-07-10 19:53:12 +00:00
Owen Anderson a6968f83b2 Make instcombine not remove Phi nodes when LCSSA is live.
llvm-svn: 29083
2006-07-10 19:03:49 +00:00
Patrick Jenkins 7ac78b99e6 Fixed some output issues where newlines were not being printed after error messages
llvm-svn: 29082
2006-07-10 18:35:41 +00:00
Patrick Jenkins 44ebd5a4f7 Fixed an issue that tried to cat externalprogramstable.txt from the testresults directory when it doesnt exist.
llvm-svn: 29080
2006-07-10 16:36:19 +00:00
Rafael Espindola e40a7e2aa2 create the raddr addressing mode that matches any register and the frame index
use raddr for the ldr instruction. This removes a dummy mov from the assembly output
remove SelectFrameIndex
remove isLoadFromStackSlot
remove isStoreToStackSlot

llvm-svn: 29079
2006-07-10 01:41:35 +00:00
Owen Anderson fe6e97d275 Fix typo in the comment.
llvm-svn: 29078
2006-07-09 21:35:40 +00:00
Owen Anderson 638d6b914d Add a test for the LCSSA issue I just fixed.
llvm-svn: 29077
2006-07-09 08:17:30 +00:00
Owen Anderson aecaabb6e1 Add a fix for an issue where LCSSA would fail to insert undef's in some corner
cases.  Ideally, this issue will go away in the future as LCSSA gets smarter
about which Phi nodes it inserts.

llvm-svn: 29076
2006-07-09 08:14:06 +00:00
Patrick Jenkins ee9985bdd6 Syntax error in NewNightlyTest.pl
llvm-svn: 29074
2006-07-07 21:47:24 +00:00
Patrick Jenkins 19ecfb0466 Fixed a variable naming issue for the External Program Results table. Also fixed an issue with printing the sent data to a sentdata.txt
llvm-svn: 29073
2006-07-07 21:40:34 +00:00
Evan Cheng af5ae57333 Fix a typo that causes 2006-07-07-ComputeMaskedBits.ll to fail.
llvm-svn: 29072
2006-07-07 21:37:21 +00:00
Chris Lattner fd2e13b107 Fix PR820 and Transforms/GlobalOpt/2006-07-07-InlineAsmCrash.ll
llvm-svn: 29071
2006-07-07 21:37:01 +00:00
Chris Lattner c20367a548 Testcase for PR820
llvm-svn: 29070
2006-07-07 21:36:42 +00:00
Evan Cheng 7f6b788f24 Add a 64-bit test case.
llvm-svn: 29069
2006-07-07 21:36:24 +00:00
Chris Lattner 0b2890e390 no need to do a stat then an lstat. lstat will tell us if normal files don't exist.
llvm-svn: 29068
2006-07-07 21:21:06 +00:00
Reid Spencer 546436c482 Finish removal of EH usage from the Archive library. The REQUIRES_EH flag
in lib/Bytecode/Archive/Makefile is now removed. One small step closer to
a smaller LLVM.

llvm-svn: 29067
2006-07-07 20:56:50 +00:00
Reid Spencer cfa807ab31 Remove EH use from the Archive library and adjust its users accordingly.
llvm-svn: 29066
2006-07-07 19:09:14 +00:00
Patrick Jenkins f976a5c854 Updated comments at top of file to reflect relevant command line options.
llvm-svn: 29065
2006-07-07 18:50:51 +00:00
Chris Lattner 9d9cd793a9 Move << method out of line.
llvm-svn: 29062
2006-07-07 18:11:32 +00:00
Chris Lattner c4f7bfa081 #include <iosfwd> not <ostream>
llvm-svn: 29061
2006-07-07 18:10:59 +00:00
Evan Cheng 6e69d60fb0 New vector shuffle test case.
llvm-svn: 29060
2006-07-07 17:54:24 +00:00
Evan Cheng c2c6a921be Update
llvm-svn: 29059
2006-07-07 17:54:10 +00:00
Chris Lattner 5a9d2e5a0a Change AllocateRWX/DeallocateRWX to not throw an exception.
llvm-svn: 29058
2006-07-07 17:32:37 +00:00
Chris Lattner 1fb6e0d79d Change AllocateRWX/DeallocateRWX do not throw an exception.
llvm-svn: 29057
2006-07-07 17:31:41 +00:00
Patrick Jenkins 5053e153e3 Added the -noremoveresults option which will not remove the $WebDir from the nightly test runs.
llvm-svn: 29056
2006-07-07 17:31:38 +00:00
Chris Lattner a75df5e22c Fix this impl
llvm-svn: 29055
2006-07-07 17:26:47 +00:00
Chris Lattner b30f735cf3 Adapt to new interface function materialization interface
llvm-svn: 29051
2006-07-07 17:18:09 +00:00
Chris Lattner a41def5801 LoadLibraryPermanently no longer throws an exception, so this code doesn't have
to catch it.  Other minor cleanups.

llvm-svn: 29050
2006-07-07 17:14:04 +00:00
Chris Lattner 5df249dfea Add a helper function
llvm-svn: 29049
2006-07-07 17:13:10 +00:00
Chris Lattner 8c8858a6c4 Change LoadLibraryPermanently to not throw an exception.
llvm-svn: 29048
2006-07-07 17:12:36 +00:00
Patrick Jenkins 15956a15b0 Fixed variable naming issue that prevented $Prefix-senddata.txt from having any information
llvm-svn: 29046
2006-07-07 17:08:02 +00:00
Chris Lattner 4f1b929022 This patch (written by Reid) changes compressor to never throw an exception.
llvm-svn: 29045
2006-07-07 17:00:12 +00:00
Chris Lattner a65d0044ce This uses EH info
llvm-svn: 29044
2006-07-07 16:46:43 +00:00
Chris Lattner 599ee8972d These libs use EH info
llvm-svn: 29043
2006-07-07 16:44:31 +00:00
Evan Cheng 5987cfb7b1 X86 target specific DAG combine: turn build_vector (load x), (load x+4),
(load x+8), (load x+12), <0, 1, 2, 3> to a single 128-bit load (aligned and
unaligned).

e.g.

__m128 test(float a, float b, float c, float d) {
  return _mm_set_ps(d, c, b, a);
}

_test:
        movups 4(%esp), %xmm0
        ret

llvm-svn: 29042
2006-07-07 08:33:52 +00:00
Chris Lattner ff5db624a4 Fix a bug in my previous patch which broke building llvm/runtime when using llvm-gcc3.
llvm-svn: 29041
2006-07-07 06:06:06 +00:00
Chris Lattner a5b884caa2 Xfail this
llvm-svn: 29040
2006-07-07 04:43:24 +00:00
Chris Lattner 814744b22c This uses EH extensively
llvm-svn: 29036
2006-07-07 00:47:29 +00:00
Chris Lattner 05a8970245 Tools require EH for their top-level try blocks.
llvm-svn: 29035
2006-07-07 00:46:19 +00:00
Chris Lattner f0858cb910 tblgen uses EH
llvm-svn: 29034
2006-07-07 00:21:17 +00:00
Chris Lattner 5096bfd80f Stacker uses EH.
llvm-svn: 29032
2006-07-07 00:20:39 +00:00
Chris Lattner 8dbf28e59e Fix an embarassing bug reid noticed
llvm-svn: 29031
2006-07-07 00:01:01 +00:00
Chris Lattner 35359d9705 Fix PR819, llvm2cpp should read .bc files, not .ll files.
llvm-svn: 29030
2006-07-06 23:48:57 +00:00
Chris Lattner 5418b0f39e Modify the SlowOperationInformer interface to not throw exceptions.
llvm-svn: 29028
2006-07-06 22:34:06 +00:00
Patrick Jenkins d0a7c2bc42 Fixed a bug that looked for -Warnings.txt and -Tests.txt in ridiculous places.
llvm-svn: 29027
2006-07-06 22:32:15 +00:00
Chris Lattner 3d40daa474 Change the ModuleProvider interface to not throw exceptions.
llvm-svn: 29024
2006-07-06 21:35:01 +00:00
Patrick Jenkins 0e316b4dbf The first commit of NewNightlyTest.pl which instead of generating a webpage submits the results of the test to a central server for storage and display.
llvm-svn: 29023
2006-07-06 21:19:32 +00:00
Chris Lattner 8ac22e748c Print LLVM version info like this:
Low Level Virtual Machine (http://llvm.org/):
  llvm version 1.8cvs
  DEBUG build with assertions.

instead of like this:

Low Level Virtual Machine (llvm) 1.8cvs (see http://llvm.org/) ASSERTIONS ENABLED

Also, add a place for vendor version info.

llvm-svn: 29020
2006-07-06 18:33:03 +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 6cf27be54d Change the verifier to never throw an exception. Instead verifyModule can
optionally return the string error, which is an easier api for clients to
use anyway.

llvm-svn: 29016
2006-07-06 18:00:01 +00:00
Chris Lattner 59b6e8a683 Undisable ppc64 jit
llvm-svn: 29011
2006-07-06 17:10:42 +00:00
Evan Cheng 5df72aa84e Fixed a typo.
llvm-svn: 29010
2006-07-06 07:46:33 +00:00
Evan Cheng 0441746468 Added option -code-model to set code model (only used in 64-bit) mode. Valid
values include small, kernel, medium, large, and default.

llvm-svn: 29009
2006-07-06 01:53:36 +00:00
Chris Lattner d1c930c801 The web site uses this
llvm-svn: 29006
2006-07-06 00:36:52 +00:00
Evan Cheng 0261242aa6 Reorg. No functionality change.
llvm-svn: 28999
2006-07-05 22:17:51 +00:00
Evan Cheng 6e0af524c4 Update test case.
llvm-svn: 28994
2006-07-05 20:46:27 +00:00
Patrick Jenkins e9ddf42663 Adding Patrick Jenkins' information to CREDITS.TXT
llvm-svn: 28993
2006-07-05 20:17:26 +00:00
Evan Cheng 41816100f4 Fix JIT on non MacOS X i386 systems.
llvm-svn: 28992
2006-07-05 07:09:13 +00:00
Andrew Lenharth 3f3cc10d88 Legalize does not handle this correctly
llvm-svn: 28991
2006-07-03 22:46:02 +00:00
Andrew Lenharth 01078dc60b These are already implemented
llvm-svn: 28990
2006-07-03 18:00:29 +00:00
Andrew Lenharth 042f5076ed 0 offsets for memory operands
llvm-svn: 28989
2006-07-03 17:57:34 +00:00
Reid Spencer ad88ff24b8 Split long comment lines.
llvm-svn: 28988
2006-07-03 16:46:03 +00:00
Evan Cheng d19938834b Ugly hack! Add helper functions InsertInFlightSetEntry and
RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.

llvm-svn: 28987
2006-06-29 23:57:05 +00:00
Chris Lattner 65e28b3186 Allow specifying an explicit list of architectures to build for, e.g.:
make ENABLE_OPTIMIZED=1 UNIVERSAL=1 UNIVERSAL_ARCH="i386 ppc ppc64"

retain the default of building for just i386/ppc.

llvm-svn: 28985
2006-06-29 19:38:04 +00:00
Evan Cheng 390922f979 Should just use xorps to clear XMM registers for all data types. pxor is also one byte longer.
llvm-svn: 28984
2006-06-29 18:04:54 +00:00
Owen Anderson 3aa5a4bf61 Describe my newest work.
llvm-svn: 28983
2006-06-29 04:21:59 +00:00
Evan Cheng 28a95491d9 Let X86CompilationCallback pass previous frame and return address to X86CompilationCallback2. Remove alloca hack.
llvm-svn: 28982
2006-06-29 01:48:36 +00:00
Evan Cheng 4158dcc4ec Added -disable-cbe to disable C backend testing.
llvm-svn: 28981
2006-06-29 00:54:37 +00:00
Evan Cheng fa9e60895b Add shift and rotate by 1 instructions / patterns.
llvm-svn: 28980
2006-06-29 00:36:51 +00:00
Evan Cheng fc8cdda070 Always use xorps to clear XMM registers.
llvm-svn: 28979
2006-06-29 00:34:23 +00:00
Evan Cheng 56737d4fe3 Move .literal4 and .literal8 support into AsmPrinter.cpp
llvm-svn: 28978
2006-06-29 00:33:06 +00:00
Evan Cheng ec1d60bd98 Add support to print 4-, 8-, and 16- byte constant literals in special
sections. e.g. On Darwin that would be .literal4 and .literal8.

llvm-svn: 28977
2006-06-29 00:26:09 +00:00
Chris Lattner 0cc5907728 Hide x86 symbols
llvm-svn: 28976
2006-06-28 23:27:49 +00:00
Chris Lattner 996795b0dd Use hidden visibility to make symbols in an anonymous namespace get
dropped.  This shrinks libllvmgcc.dylib another 67K

llvm-svn: 28975
2006-06-28 23:17:24 +00:00
Chris Lattner d6cba04607 Use hidden visibility to reduce codesize
llvm-svn: 28974
2006-06-28 22:57:00 +00:00
Chris Lattner e097e6f7c7 Shave another 27K off libllvmgcc.dylib with visibility hidden
llvm-svn: 28973
2006-06-28 22:17:39 +00:00
Chris Lattner 4a4c7fe7fa Shrink libllvmgcc.dylib by another 23K
llvm-svn: 28972
2006-06-28 22:08:15 +00:00
Chris Lattner 2f8c2d8ef2 shrink libllvmgcc.dylib another 25K
llvm-svn: 28971
2006-06-28 22:00:36 +00:00
Chris Lattner 54a34cd20b Mark these two classes as hidden, shrinking libllbmgcc.dylib by 25K
llvm-svn: 28970
2006-06-28 21:58:30 +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 9fbcf35407 Add support for hidden visibility
llvm-svn: 28968
2006-06-28 21:38:04 +00:00
Andrew Lenharth c327932ac1 not really XFailing these, as only incompleteness is wrong in the graph
llvm-svn: 28967
2006-06-28 20:14:30 +00:00
Andrew Lenharth 48b2b0c444 change I flag on test
llvm-svn: 28966
2006-06-28 20:07:36 +00:00
Chris Lattner 710b3d5ea1 Fix CodeGen/Generic/2006-06-28-SimplifySetCCCrash.ll
llvm-svn: 28965
2006-06-28 18:29:47 +00:00
Chris Lattner 924963b604 Testcase that crashes the ppc backend.
llvm-svn: 28964
2006-06-28 18:29:33 +00:00
Evan Cheng 87813744ba Doh.
llvm-svn: 28963
2006-06-28 17:56:43 +00:00
Owen Anderson 18e816f356 Switch to a very conservative heuristic for determining when loop-unswitching
will be profitable.  This is mainly to remove some cases where excessive
unswitching would result in long compile times and/or huge generated code.

Once someone comes up with a better heuristic that avoids these cases, this
should be switched out.

llvm-svn: 28962
2006-06-28 17:47:50 +00:00
Chris Lattner 3fda386965 Fix Transforms/InstCombine/2006-06-28-infloop.ll
llvm-svn: 28961
2006-06-28 17:34:50 +00:00
Chris Lattner 4c6f86816e Infinite loop in instcombine that nate hit.
llvm-svn: 28960
2006-06-28 17:34:28 +00:00
Chris Lattner 0a2e11260e Don't unswitch really large loops even if they are mostly filled with empty
blocks.

llvm-svn: 28959
2006-06-28 16:38:55 +00:00
Evan Cheng 0687b04455 Oops. Need to keep CP index.
llvm-svn: 28958
2006-06-28 07:55:24 +00:00
Evan Cheng 7f88856d95 Darwin puts float and double literal constants into literal4 and literal8 sections.
llvm-svn: 28957
2006-06-28 07:35:41 +00:00
Andrew Lenharth 5b10cfcc39 add some missing externals
llvm-svn: 28955
2006-06-28 01:16:06 +00:00
Andrew Lenharth ebfa24ee9a Catch more function pointer casting problems
Remove the Function pointer cast in these calls, converting it to
a cast of argument.
%tmp60 = tail call int cast (int (ulong)* %str to int (int)*)( int 10 )
%tmp60 = tail call int cast (int (ulong)* %str to int (int)*)( uint %tmp51 )

llvm-svn: 28953
2006-06-28 01:01:52 +00:00
Evan Cheng 307b9c93cf Allow EmitConstantPool to be redefined by derived classes.
llvm-svn: 28952
2006-06-28 00:52:32 +00:00
Chris Lattner 90213c6c18 Handle alias sets that have been unified, and thus can have other references
to them.  This fixes a regression in my previous checkin.

llvm-svn: 28951
2006-06-27 23:56:13 +00:00
Chris Lattner f4e0653b3a Don't implement AliasSetTracker::remove in terms of deleteValue. deleteValue
causes the pointer to be removed from the underlying alias analysis
implementation as well.  This impl of remove is also significantly faster than
the old one.  This fixes:
Regression/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll

llvm-svn: 28950
2006-06-27 23:48:59 +00:00
Chris Lattner 5f49a00b9f New testcase, reduced by nate, which crashes DSE
llvm-svn: 28949
2006-06-27 23:47:39 +00:00
Andrew Lenharth a53a22e5fe this case isn't handled
llvm-svn: 28948
2006-06-27 23:19:14 +00:00
Owen Anderson bb3ae5eb8f Fix for 2006-06-27-DeadSwitchCase.ll
Be more careful when updating Phi nodes after eliminating dead switch cases.  Fix
proposed by Chris.

llvm-svn: 28947
2006-06-27 22:26:09 +00:00
Owen Anderson c3b1a220a7 Testcase that Nate found where LoopUnswitch chokes on eliminating a dead case
from a switch instruction.

llvm-svn: 28946
2006-06-27 22:24:59 +00:00
Rafael Espindola f6f5aff038 handle the "mov reg1, reg2" case in isMoveInstr
llvm-svn: 28945
2006-06-27 21:52:45 +00:00
Chris Lattner ca9c488528 Don't match 64-bit bitfield inserts into rlwimi's. todo add rldimi. :)
llvm-svn: 28944
2006-06-27 21:08:52 +00:00
Chris Lattner c4998a0138 Fix Transforms/DeadArgElim/2006-06-27-struct-ret.ll. -deadargelim should not
remove the struct return argument of a csret function, even if it is obviously
dead.

llvm-svn: 28943
2006-06-27 21:05:04 +00:00
Chris Lattner 66e9513625 testcase that crashes dead arg elim.
llvm-svn: 28942
2006-06-27 20:58:41 +00:00
Chris Lattner f882c54505 Fix ppc64 jump tables
llvm-svn: 28941
2006-06-27 20:46:17 +00:00
Chris Lattner cc21fa7b41 Pass -Xlinker flags to gcc when it builds the shared object.
llvm-svn: 28939
2006-06-27 20:35:36 +00:00
Evan Cheng 2aed9ebded Remove dead code.
llvm-svn: 28938
2006-06-27 20:34:14 +00:00
Evan Cheng 6d1f93d500 Fix -extraflags
llvm-svn: 28937
2006-06-27 20:30:28 +00:00
Chris Lattner 82ab3e21b1 Print stubs for external globals right.
llvm-svn: 28936
2006-06-27 20:20:53 +00:00
Chris Lattner 8aed3cc46b Implement 64-bit select, bswap, etc.
llvm-svn: 28935
2006-06-27 20:14:52 +00:00
Chris Lattner a2af3f47ea Add a pattern for i64 sra. Print 8-byte units with a space between the .quad
and the data

llvm-svn: 28934
2006-06-27 20:07:26 +00:00
Chris Lattner db9a95b775 Fix rewriting frame offsets with ixaddr instructions, which implicitly shift
the offset two bits to the left.

llvm-svn: 28933
2006-06-27 18:55:49 +00:00
Chris Lattner a07410c95b PPC doesn't have bit converts to/from i64
llvm-svn: 28932
2006-06-27 18:40:08 +00:00
Chris Lattner 3b5873456e Add 64-bit MTCTR so that indirect calls work.
llvm-svn: 28931
2006-06-27 18:36:44 +00:00
Chris Lattner e27d51e0d8 Fix an incorrect store pattern. This fixes em3d.
llvm-svn: 28930
2006-06-27 18:22:50 +00:00
Chris Lattner d48ce27532 Implement 64-bit undef, sub, shl/shr, srem/urem
llvm-svn: 28929
2006-06-27 18:18:41 +00:00
Devang Patel 039215b020 Fix cut-n-pasto in comments.
llvm-svn: 28928
2006-06-27 18:07:29 +00:00
Chris Lattner cb5a84f446 Use i32 for shift amounts instead of i64. This gets bisort working.
llvm-svn: 28927
2006-06-27 17:34:57 +00:00
Chris Lattner f7fd88356a Add zextload from i32 -> i64, with this, perimeter works.
llvm-svn: 28926
2006-06-27 17:30:08 +00:00
Reid Spencer ee7eaa25cf For PR801:
Refactor the Graph writing code to use a common implementation which is
now in lib/Support/GraphWriter.cpp. This completes the PR.

Patch by Anton Korobeynikov. Thanks, Anton!

llvm-svn: 28925
2006-06-27 16:49:46 +00:00
Owen Anderson b659bb4196 De-pessimize the handling of LCSSA Phi nodes in IndVarSimplify. Hopefully this
will make Shootout-C/nestedloop faster.

llvm-svn: 28924
2006-06-27 02:17:08 +00:00
Chris Lattner 1df0839067 Print darwin stub stuff correctly in 64-bit mode. With this, treeadd works in
ppc64 mode!

llvm-svn: 28923
2006-06-27 01:02:25 +00:00
Chris Lattner 9a40cca40f Fix variable shadowing issue
llvm-svn: 28922
2006-06-27 00:10:13 +00:00
Chris Lattner 97b3da1519 Implement a bunch of 64-bit cleanliness work. With this, treeadd builds (but
doesn't work right).

llvm-svn: 28921
2006-06-27 00:04:13 +00:00
Chris Lattner 7ecbd301b1 Rearrange compares, add ADDI8, add sext from 32-to-64 bit register
llvm-svn: 28920
2006-06-26 23:53:10 +00:00
Chris Lattner ec78cade34 Improve PPC64 calling convention support
llvm-svn: 28919
2006-06-26 22:48:35 +00:00
Chris Lattner b6a65f4661 Remove two more definitions
llvm-svn: 28918
2006-06-26 22:47:37 +00:00
Chris Lattner 86e6046515 remove two unused instructions.
llvm-svn: 28917
2006-06-26 22:44:13 +00:00
Chris Lattner e7d4e56961 Fix a stale pointer issue that caused 300.twolf to fail to build on zion
last night.

llvm-svn: 28916
2006-06-26 19:20:48 +00:00
Chris Lattner b06021a0f7 Add a new method.
llvm-svn: 28915
2006-06-26 19:20:25 +00:00
Chris Lattner 49771a0462 random code cleanups, no functionality change
llvm-svn: 28914
2006-06-26 19:10:05 +00:00
Owen Anderson f52351e50f Make LoopUnswitch able to unswitch loops with live-out values by taking advantage
of LCSSA.  This results several times the number of unswitchings occurring on
tests such and timberwolfmc, unix-tbl, and ldecod.

llvm-svn: 28912
2006-06-26 07:44:36 +00:00
Evan Cheng 38c5aee959 Simplify X86CompilationCallback: always align to 16-byte boundary; don't save EAX/EDX if unnecessary.
llvm-svn: 28910
2006-06-24 08:36:10 +00:00
Jim Laskey a7b2bd5997 Add and sort "sections" in debug lines. This always stepping through
code in sections other than ".text", including weak sections like ctors and
dtors.

llvm-svn: 28909
2006-06-23 12:51:53 +00:00
Evan Cheng 6a34939af6 Added jump table address relocation.
llvm-svn: 28908
2006-06-23 01:02:37 +00:00
Evan Cheng 0c9b90aba3 Eliminate unneeded parameter.
llvm-svn: 28907
2006-06-22 00:02:55 +00:00
Evan Cheng fc1b27dad1 variable_ops instructions such as call can have any number of operands.
llvm-svn: 28906
2006-06-21 23:37:07 +00:00