John Criswell
9c9405f4ef
Fixed typo.
...
llvm-svn: 44542
2007-12-03 19:34:25 +00:00
Anton Korobeynikov
c09b265410
Regenerate
...
llvm-svn: 44541
2007-12-03 19:17:47 +00:00
Devang Patel
bd75910fa7
If ExitValue operand is also defined in Loop header then
...
insert new ExitValue after this operand definition.
This fixes PR1828.
llvm-svn: 44539
2007-12-03 19:17:21 +00:00
Anton Korobeynikov
d62b10dc93
More sanity checks for function types.
...
Thanks goes to PyPy folks for generating broken stuff :)
llvm-svn: 44538
2007-12-03 19:16:54 +00:00
Chris Lattner
b39e02bcc2
Describe the notion of 'owners' of the code.
...
llvm-svn: 44537
2007-12-03 19:00:47 +00:00
Gordon Henriksen
4814cd2271
Applying Anton's binmode fix to the other ofstream too.
...
llvm-svn: 44535
2007-12-03 14:50:37 +00:00
Anton Korobeynikov
bf96d99383
Sorry, typo :)
...
llvm-svn: 44534
2007-12-03 14:35:57 +00:00
Anton Korobeynikov
7c5442b0e3
Open output file correctly. This is extremely important for
...
windows-based hosts, where files are opened in text mode by default.
llvm-svn: 44533
2007-12-03 14:28:26 +00:00
Evan Cheng
196faa9dc5
Typo
...
llvm-svn: 44532
2007-12-03 10:00:00 +00:00
Evan Cheng
85ef9834a6
Update kill info for uses of split intervals.
...
llvm-svn: 44531
2007-12-03 09:58:48 +00:00
Anton Korobeynikov
9050bd1f68
Provide hook for _alloca to make JITing on Cygwin slightly happier :)
...
llvm-svn: 44528
2007-12-03 05:30:41 +00:00
Nick Lewycky
9746782cea
lli -trace was removed back in 2003.
...
llvm-svn: 44527
2007-12-03 01:58:01 +00:00
Nick Lewycky
d93847a96a
Type::IntTy hasn't existed for a while. Just sub in Type::Int32Ty.
...
llvm-svn: 44526
2007-12-03 01:52:52 +00:00
Chris Lattner
4b6d965611
explain what I need to grant commit access.
...
llvm-svn: 44524
2007-12-03 00:36:20 +00:00
Chris Lattner
b4ef023bf6
fix typo noticed by Joshua Pennington
...
llvm-svn: 44522
2007-12-02 22:46:01 +00:00
Evan Cheng
f45a1d623c
Remove redundant foldMemoryOperand variants and other code clean up.
...
llvm-svn: 44517
2007-12-02 08:30:39 +00:00
Gordon Henriksen
3e41367dd5
Adding ocamldoc-style comments for the Ocaml bindings.
...
llvm-svn: 44494
2007-12-01 21:01:15 +00:00
Gordon Henriksen
e000c6022f
Fix a typo noticed by Alain Frisch.
...
llvm-svn: 44493
2007-12-01 20:59:23 +00:00
Duncan Sands
68b6f50938
Integrate the readonly/readnone logic more deeply
...
into alias analysis. This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter. These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function. Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite. To reduce the
chance of misuse it is now protected.
llvm-svn: 44487
2007-12-01 07:51:45 +00:00
Evan Cheng
388f6f51a0
Fix a bug where splitting cause some unnecessary spilling.
...
llvm-svn: 44482
2007-12-01 04:42:39 +00:00
Owen Anderson
7f09c88977
Fixes for MachineLoopInfo, mostly from Evan. With these, it should be almost useable!
...
llvm-svn: 44480
2007-12-01 03:01:39 +00:00
Evan Cheng
69fda0a716
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0.
...
llvm-svn: 44479
2007-12-01 02:07:52 +00:00
Eric Christopher
e62b441b51
Add target triple to include/llvm/Config/config.h.in. Regenerate all files.
...
llvm-svn: 44478
2007-12-01 00:34:39 +00:00
Devang Patel
c7d9af8d6d
Change LinkTimeOptimizer.h install location.
...
llvm-svn: 44477
2007-12-01 00:24:50 +00:00
Devang Patel
0fceaea8be
Change lib lto install location.
...
llvm-svn: 44476
2007-11-30 23:27:57 +00:00
Ted Kremenek
8ded669b04
Fixed subtle bug in Deserializer::JumpTo when jumping when the block-nesting
...
information matching did not exactly match the underlying stream's scoping
information.
llvm-svn: 44470
2007-11-30 22:45:05 +00:00
Ted Kremenek
1f80e8b6eb
Fixed potential bug where CurWord is not zeroed out in JumpToBit.
...
llvm-svn: 44469
2007-11-30 22:39:46 +00:00
Evan Cheng
b10dc27b20
Do not fold reload into an instruction with multiple uses. It issues one extra load.
...
llvm-svn: 44467
2007-11-30 21:23:43 +00:00
Chris Lattner
907703cecd
chain update requests properly.
...
llvm-svn: 44460
2007-11-30 18:52:58 +00:00
Duncan Sands
d4d7f9d69e
Small optimization of parameter attribute lookup.
...
llvm-svn: 44458
2007-11-30 18:20:58 +00:00
Duncan Sands
b41f872013
Add a convenience method for modifying parameter
...
attributes. While there, I noticed that not all
attribute methods returned a pointer-to-constant,
so I fixed that.
llvm-svn: 44457
2007-11-30 18:19:18 +00:00
Duncan Sands
4e8c071612
Check that there are not more attributes than
...
function parameters.
llvm-svn: 44452
2007-11-30 15:52:20 +00:00
Devang Patel
cc45c338d1
Provide a way to update DescGlobals cache directly.
...
llvm-svn: 44446
2007-11-30 00:51:33 +00:00
Evan Cheng
d35b5acae4
Do not lose rematerialization info when spilling already split live intervals.
...
llvm-svn: 44443
2007-11-29 23:02:50 +00:00
Owen Anderson
ffa55112e0
Fix a miscompilation in spiff on PPC.
...
llvm-svn: 44437
2007-11-29 18:02:22 +00:00
Evan Cheng
8494ee175c
Fix a major performance issue with splitting. If there is a def (not def/use)
...
in the middle of a split basic block, create a new live interval starting at
the def. This avoid artifically extending the live interval over a number of
cycles where it is dead. e.g.
bb1:
= vr1204 (use / kill) <= new interval starts and ends here.
...
...
vr1204 = (new def) <= start a new interval here.
= vr1204 (use)
llvm-svn: 44436
2007-11-29 10:12:14 +00:00
Evan Cheng
37ed3e6320
Update tests.
...
llvm-svn: 44435
2007-11-29 10:03:54 +00:00
Evan Cheng
f85c063ec0
Replace the odd kill# hack with something less fragile.
...
llvm-svn: 44434
2007-11-29 09:49:23 +00:00
Duncan Sands
8dfcd5975e
Small parameter attributes cleanup.
...
llvm-svn: 44433
2007-11-29 08:30:15 +00:00
Chris Lattner
f5a095359e
Pass the whole StringMapEntry into StringMapEntryInitializer::Initialize.
...
llvm-svn: 44432
2007-11-29 06:14:41 +00:00
Chris Lattner
d1f0e3d791
provide an optional API to allow datatypes in a stringmap to be *gasp*
...
initialized with a value if they want, by specializing the
StringMapEntryInitializer class.
llvm-svn: 44430
2007-11-29 06:04:41 +00:00
Evan Cheng
be255b0650
Fixed various live interval splitting bugs / compile time issues.
...
llvm-svn: 44428
2007-11-29 01:06:25 +00:00
Evan Cheng
147f7799c5
Kill info update bug.
...
llvm-svn: 44427
2007-11-29 01:05:47 +00:00
Chris Lattner
cee633a873
New testcase for PR1744
...
llvm-svn: 44418
2007-11-28 22:43:34 +00:00
Chris Lattner
246b7b2dbf
Work around a GCC bug, producing this code:
...
unsigned char *llvm_cbe_X;
...
llvm_cbe_X = 0; *((void**)&llvm_cbe_X) = __builtin_stack_save();
instead of:
llvm_cbe_X = __builtin_stack_save();
See PR1809 for details.
llvm-svn: 44415
2007-11-28 21:26:17 +00:00
Chris Lattner
3fbb6a83a8
Add a note
...
llvm-svn: 44414
2007-11-28 19:26:42 +00:00
Chris Lattner
57ee7c6630
Implement ExpandOperationResult for ppc i64 fp->int, which fixes
...
CodeGen/Generic/fp_to_int.ll among others. Its unclear why this
just started failing...
llvm-svn: 44407
2007-11-28 18:44:47 +00:00
Chris Lattner
749478a61b
for consistency, allow a fallthrough if the final check returns null.
...
llvm-svn: 44406
2007-11-28 18:30:18 +00:00
Chris Lattner
f4769da4b3
upgrade this test
...
llvm-svn: 44405
2007-11-28 18:22:12 +00:00
Chris Lattner
d6109cf328
make this test have a deterministic result.
...
llvm-svn: 44404
2007-11-28 18:20:49 +00:00
Duncan Sands
5208d1ab4a
Add some convenience methods for querying attributes, and
...
use them.
llvm-svn: 44403
2007-11-28 17:07:01 +00:00
Duncan Sands
b5452fb829
Revert previous "fix" - the breakage was due to some
...
local changes, not the "not".
llvm-svn: 44402
2007-11-28 16:50:29 +00:00
Duncan Sands
0497916c88
This test somehow got an extra "not" during the
...
recent stderr updates.
llvm-svn: 44401
2007-11-28 15:36:27 +00:00
Duncan Sands
ff306287ff
My compiler complains that "x always evaluates to true"
...
in this call:
Result.IntVal = APInt(80, 2, x);
What is x?
uint16_t x[8];
I deduce that the APInt constructor being used is this one:
APInt(uint32_t numBits, uint64_t val, bool isSigned = false);
rather than this one:
APInt(uint32_t numBits, uint32_t numWords, const uint64_t bigVal[]);
That doesn't seem right! This fix compiles but is otherwise completely
untested.
llvm-svn: 44400
2007-11-28 10:36:19 +00:00
Duncan Sands
45a0c3265f
Add missing newlines at EOF.
...
llvm-svn: 44399
2007-11-28 10:13:38 +00:00
Chris Lattner
e499816a23
xfail a test
...
llvm-svn: 44395
2007-11-28 05:37:13 +00:00
Chris Lattner
e04dc1fa4d
update this test after the fmrrd fix
...
llvm-svn: 44393
2007-11-28 05:27:07 +00:00
Tanya Lattner
ec072113f0
Fix typo
...
llvm-svn: 44391
2007-11-28 05:14:49 +00:00
Tanya Lattner
8460374e30
Modified instructions to configure llvm-test by configure llvm with the Path --with-llvmgccdir set.
...
llvm-svn: 44390
2007-11-28 05:13:45 +00:00
Tanya Lattner
8f342f8ef3
Fix bug in regression tests that ignored stderr output in RUN lines. Updated tests and fixed broken run lines.
...
XFAILed 3 arm regressions (will file bugs)
llvm-svn: 44389
2007-11-28 04:57:00 +00:00
Evan Cheng
c1648b6a0d
Recover compile time regression.
...
llvm-svn: 44386
2007-11-28 01:28:46 +00:00
Owen Anderson
30767b15e9
Add MachineLoopInfo. This is not yet tested.
...
llvm-svn: 44384
2007-11-27 22:47:08 +00:00
Chris Lattner
f247e27666
commit testcase I forgot to svn add.
...
llvm-svn: 44383
2007-11-27 22:43:37 +00:00
Chris Lattner
57662f3882
several entries got significantly better, though they still aren't done.
...
llvm-svn: 44382
2007-11-27 22:41:52 +00:00
Chris Lattner
f3f4ad9dd6
implement a trivial readme entry.
...
llvm-svn: 44380
2007-11-27 22:36:16 +00:00
Chris Lattner
79ae9895f6
Fix a crash on invalid code due to memcpy lowering.
...
llvm-svn: 44378
2007-11-27 22:14:42 +00:00
Chris Lattner
be5f3cb6f1
Make this actually work on systems that support ppc long double.
...
llvm-svn: 44374
2007-11-27 20:45:25 +00:00
Chris Lattner
fffd0ae2f1
Unbreak all of the darwin/ppc32 JIT failures having to do
...
with not being able to find printf.
llvm-svn: 44373
2007-11-27 20:41:32 +00:00
Ted Kremenek
14d5f741ab
Updated GenLibDeps.pl to employ "use strict" to help prevent uses of variables
...
that have not yet been defined.
Removed used of grep and sed when parsing the results of "nm". This was
originally motivated because if the user has specified options to grep using
the environment variable GREP_OPTIONS this could break the script. Piping
through grep/sed/sort/uniq is also (to my understanding) not necessary, and
the equivalent operations can be done much faster in the Perl script.
Using a crude benchmark, these changes resulted in a 3x speedup in the
execution of GenLibDeps.pl.
llvm-svn: 44372
2007-11-27 19:31:11 +00:00
Nate Begeman
6f026a654c
Support returning non-power-of-2 vectors to unblock some work
...
llvm-svn: 44371
2007-11-27 19:28:48 +00:00
Andrew Lenharth
b960acebde
something wrong with this opt
...
llvm-svn: 44370
2007-11-27 18:31:30 +00:00
Anton Korobeynikov
75445ae2c3
Add testcase for last llvm-gcc tweaks
...
llvm-svn: 44368
2007-11-27 18:21:29 +00:00
Ted Kremenek
c6298de211
Added quotes around $(NM_PATH) argument to GenLibDeps.pl script so that
...
the "-p" option is actually seen by nm (it was being dropped as it was
considered as separate argument to the Perl script).
llvm-svn: 44365
2007-11-27 17:53:54 +00:00
Chris Lattner
1dfc48d4f6
Unbreak backwards compatibility with bytecode format. Regression
...
introduced by this patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071126/055824.html
llvm-svn: 44364
2007-11-27 17:48:06 +00:00
Duncan Sands
ad0ea2d430
Fix PR1146: parameter attributes are longer part of
...
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
llvm-svn: 44359
2007-11-27 13:23:08 +00:00
Zhou Sheng
34ffaeeeed
Make this pass for CYGWIN.
...
llvm-svn: 44354
2007-11-27 06:23:59 +00:00
Zhou Sheng
73286d6309
Make this testcase compatible with CYGWIN.
...
llvm-svn: 44353
2007-11-27 06:17:01 +00:00
Chris Lattner
698b1cb28d
err, no really.
...
llvm-svn: 44352
2007-11-27 06:14:32 +00:00
Chris Lattner
28caf2717a
don't depend on ADL.
...
llvm-svn: 44351
2007-11-27 06:14:12 +00:00
Owen Anderson
b0dd27ee91
Make LoopInfoBase more generic, in preparation for having MachineLoopInfo. This involves a small interface change.
...
llvm-svn: 44348
2007-11-27 03:43:35 +00:00
Owen Anderson
5aad0d7ea2
Add accessor for getting the underlying templated type. This is necessary for templated LoopInfo.
...
llvm-svn: 44347
2007-11-27 03:33:40 +00:00
Chuck Rose III
20a104c87f
Moving TGLexer.h from source to header file tab in TableGen project file
...
llvm-svn: 44346
2007-11-27 01:25:12 +00:00
Dan Gohman
8bba724afc
Change &| to |&.
...
llvm-svn: 44345
2007-11-27 00:50:57 +00:00
Dan Gohman
2dba0788a5
Change grep '' to grep {}.
...
Change 2>&1 | to |&.
llvm-svn: 44344
2007-11-27 00:10:35 +00:00
Dan Gohman
9ab9e9fa03
Don't redirect llvm-as's stderr to llvm-dis.
...
Change grep '' to grep {}.
llvm-svn: 44343
2007-11-27 00:07:33 +00:00
Dan Gohman
f151c8e760
Remove unnecessary && from the RUN lines of this test.
...
llvm-svn: 44342
2007-11-27 00:03:38 +00:00
Dan Gohman
9a69341725
Don't lower srem/urem X%C to X-X/C*C unless the division is actually
...
optimized. This avoids creating illegal divisions when the combiner is
running after legalize; this fixes PR1815. Also, it produces better
code in the included testcase by avoiding the subtract and multiply
when the division isn't optimized.
llvm-svn: 44341
2007-11-26 23:46:11 +00:00
Chuck Rose III
084b0eb3ca
Add TGParser files to VStudio project files. Removed generated files section from TableGen project file as it is no longer needed. #Include <algorithm> directly from TGParser.cpp so it can see std::reverse.
...
llvm-svn: 44340
2007-11-26 23:19:59 +00:00
Owen Anderson
9f0b6e9d46
Fix another bug that was causing siod to fail.
...
llvm-svn: 44325
2007-11-26 07:17:19 +00:00
Owen Anderson
7cad745d49
Fix a silly bug that Nicholas noticed.
...
llvm-svn: 44324
2007-11-26 03:27:38 +00:00
Owen Anderson
4f833c7610
Allow GVN to eliminate read-only function calls when it can detect that they are redundant.
...
llvm-svn: 44323
2007-11-26 02:26:36 +00:00
Anton Korobeynikov
2f76e373ae
Remove another leak. Due to some reason AliasSetTracker didn't had any dtor...
...
llvm-svn: 44320
2007-11-25 23:52:02 +00:00
Nick Lewycky
cdb7e54ca7
Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.
...
llvm-svn: 44319
2007-11-25 22:41:31 +00:00
Chris Lattner
c00e8adfe0
Implement PR1822
...
llvm-svn: 44318
2007-11-25 21:27:53 +00:00
Anton Korobeynikov
bd9df0f200
Remove a leak. Destroy LoopInfoBase object. releaseMemory() is actually called in its dtor.
...
llvm-svn: 44317
2007-11-25 18:41:39 +00:00
Duncan Sands
185eeac0f8
Fix PR1816. If a bitcast of a function only exists because of a
...
trivial difference in function attributes, allow calls to it to
be converted to direct calls. Based on a patch by Török Edwin.
While there, move the various lists of mutually incompatible
parameters etc out of the verifier and into ParameterAttributes.h.
llvm-svn: 44315
2007-11-25 14:10:56 +00:00
Chris Lattner
5728bdd4db
Fix a long standing deficiency in the X86 backend: we would
...
sometimes emit "zero" and "all one" vectors multiple times,
for example:
_test2:
pcmpeqd %mm0, %mm0
movq %mm0, _M1
pcmpeqd %mm0, %mm0
movq %mm0, _M2
ret
instead of:
_test2:
pcmpeqd %mm0, %mm0
movq %mm0, _M1
movq %mm0, _M2
ret
This patch fixes this by always arranging for zero/one vectors
to be defined as v4i32 or v2i32 (SSE/MMX) instead of letting them be
any random type. This ensures they get trivially CSE'd on the dag.
This fix is also important for LegalizeDAGTypes, as it gets unhappy
when the x86 backend wants BUILD_VECTOR(i64 0) to be legal even when
'i64' isn't legal.
This patch makes the following changes:
1) X86TargetLowering::LowerBUILD_VECTOR now lowers 0/1 vectors into
their canonical types.
2) The now-dead patterns are removed from the SSE/MMX .td files.
3) All the patterns in the .td file that referred to immAllOnesV or
immAllZerosV in the wrong form now use *_bc to match them with a
bitcast wrapped around them.
4) X86DAGToDAGISel::SelectScalarSSELoad is generalized to handle
bitcast'd zero vectors, which simplifies the code actually.
5) getShuffleVectorZeroOrUndef is updated to generate a shuffle that
is legal, instead of generating one that is illegal and expecting
a later legalize pass to clean it up.
6) isZeroShuffle is generalized to handle bitcast of zeros.
7) several other minor tweaks.
This patch is definite goodness, but has the potential to cause random
code quality regressions. Please be on the lookout for these and let
me know if they happen.
llvm-svn: 44310
2007-11-25 00:24:49 +00:00
Chris Lattner
cab915f9cf
Implement expand support for MERGE_VALUEs that only produces one result.
...
llvm-svn: 44304
2007-11-24 19:12:15 +00:00
Chris Lattner
6a49593aa5
add a immAllZerosV_bc pattern fragment for consistency with others.
...
llvm-svn: 44303
2007-11-24 19:02:07 +00:00
Chris Lattner
f72ad16263
remove bogus assertion that broke CodeGen/Generic/cast-fp.ll on x86
...
among others.
llvm-svn: 44302
2007-11-24 18:37:20 +00:00
Chris Lattner
6e3641897b
Implement support for custom legalization in DAGTypeLegalizer::ExpandOperand.
...
Improve a comment.
Unbreak Duncan's carefully written path compression where I didn't realize
what was happening!
llvm-svn: 44301
2007-11-24 18:11:42 +00:00
Chris Lattner
f81d5886c6
Several changes:
...
1) Change the interface to TargetLowering::ExpandOperationResult to
take and return entire NODES that need a result expanded, not just
the value. This allows us to handle things like READCYCLECOUNTER,
which returns two values.
2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES.
3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new
ExpandOperationResult. This makes the result simpler and fully
general.
4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes.
5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM
i64 shifts, allowing them to work with LegalizeDAGTypes.
6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT,
allowing them to work with LegalizeDAGTypes.
LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when
type legalization in LegalizeDAG is ifdef'd out.
llvm-svn: 44300
2007-11-24 07:07:01 +00:00
Chris Lattner
ab98c41337
add a note
...
llvm-svn: 44299
2007-11-24 06:13:33 +00:00
Chris Lattner
f5dfd15e98
upgrade this test
...
llvm-svn: 44298
2007-11-24 05:39:29 +00:00
Chris Lattner
893fe3bbd1
Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.
...
llvm-svn: 44296
2007-11-23 22:42:31 +00:00
Chris Lattner
69ec1ec86a
simplify some code.
...
llvm-svn: 44295
2007-11-23 22:36:49 +00:00
Chris Lattner
c2c4c7456c
Fix APInt::countTrailingZeros to return BitWidth if the input is zero instead of returning some random large number.
...
llvm-svn: 44294
2007-11-23 22:36:25 +00:00
Chris Lattner
0cf083815a
add a comment.
...
llvm-svn: 44293
2007-11-23 22:35:18 +00:00
Chris Lattner
7514abe56e
splice some lines together, no functionality change.
...
llvm-svn: 44292
2007-11-23 22:34:59 +00:00
Chris Lattner
752b05fe94
!< is >=, not >. Thanks to Max Hailperin for pointing this out!
...
llvm-svn: 44291
2007-11-23 22:19:33 +00:00
Duncan Sands
8a3e9d2bee
Ding dong, the DoesntAccessMemoryFns and
...
OnlyReadsMemoryFns tables are dead! We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.
llvm-svn: 44288
2007-11-23 19:30:27 +00:00
Duncan Sands
b23192f483
Remove some logic I thoughtlessly copied over
...
from the old ADCE implementation (there it was
correct because the transform was being done
for read-only functions).
llvm-svn: 44287
2007-11-23 09:10:17 +00:00
Chris Lattner
a8fbde3f78
Fix a bug where we'd try to find a scev value for a bitcast operand,
...
even though the bitcast operand did not have integer type. This fixes
PR1814.
llvm-svn: 44286
2007-11-23 08:46:22 +00:00
Chris Lattner
1985d96dc9
Fix PR1817.
...
llvm-svn: 44284
2007-11-22 23:47:13 +00:00
Chris Lattner
a717ce7c70
add some static icmpinst predicates.
...
llvm-svn: 44283
2007-11-22 23:43:29 +00:00
Chris Lattner
176d048901
add missing #include
...
llvm-svn: 44282
2007-11-22 23:19:05 +00:00
Anton Korobeynikov
59c11686cc
Don't crash on bogus llvm.noinline. This is first part of PR1817 (preventing reduction)
...
llvm-svn: 44281
2007-11-22 22:30:10 +00:00
Duncan Sands
a915b538d3
Turn invokes of nounwind functions into ordinary calls.
...
llvm-svn: 44280
2007-11-22 22:24:59 +00:00
Duncan Sands
38a5e82ef4
Teach alias analysis about readnone/readonly functions.
...
Based on a patch by Török Edwin.
llvm-svn: 44279
2007-11-22 21:43:27 +00:00
Duncan Sands
1c97d752df
Readonly/readnone functions are allowed to throw
...
exceptions, so don't turn invokes of them into
calls.
llvm-svn: 44278
2007-11-22 21:40:06 +00:00
Chris Lattner
5241695dca
resolve the last fixme's in the new tblgen parser.
...
llvm-svn: 44277
2007-11-22 21:06:59 +00:00
Chris Lattner
695506c046
change the Init print methods to return strings, and implement
...
print in terms of that.
llvm-svn: 44276
2007-11-22 21:05:25 +00:00
Chris Lattner
1b1e96b8d7
eliminate a bunch of print methods that are duplicate with the getAsString() method.
...
llvm-svn: 44275
2007-11-22 20:51:34 +00:00
Chris Lattner
f4127dd48e
Rewrite the tblgen parser in a recursive descent style, eliminating the bison parser.
...
This makes the parser much easier to understand, eliminates a ton of global variables,
and gives tblgen nice caret diagnostics. It is also faster, but tblgen probably doesn't
care about performance.
There are a couple of FIXMEs which I will take care of next.
llvm-svn: 44274
2007-11-22 20:49:04 +00:00
Duncan Sands
a89a113a20
Rename the 'const' parameter attribute to 'readnone',
...
and the 'pure' parameter attribute to 'readonly'.
Names suggested by DannyB.
llvm-svn: 44273
2007-11-22 20:23:04 +00:00
Nick Lewycky
3783b46f9e
Instead of calculating constant factors, calculate the number of trailing
...
bits. Patch from Wojciech Matyjewicz.
llvm-svn: 44268
2007-11-22 07:59:40 +00:00
Nick Lewycky
016547d226
Create nodes for inline asm so that we don't crash looking for the node later.
...
llvm-svn: 44267
2007-11-22 03:07:37 +00:00
Chuck Rose III
738fa17c4e
Switching back to strtoll. Including config.h. On VStudio builds, this overrides strtoll.
...
llvm-svn: 44264
2007-11-21 19:36:25 +00:00
Duncan Sands
b87dde7e8e
Fix a bug in which node A is replaced by node B, but later
...
node A gets back into the DAG again because it was hiding in
one of the node maps: make sure that node replacement happens
in those maps too.
llvm-svn: 44263
2007-11-21 16:43:19 +00:00
Nick Lewycky
1d6f196245
typo
...
llvm-svn: 44262
2007-11-21 05:21:54 +00:00
Dale Johannesen
e70850cf7b
Fix compiler warning.
...
llvm-svn: 44261
2007-11-21 00:45:00 +00:00
Chuck Rose III
07b57d2626
This change does a couple of things. First it gets the Visual Studio builds working.
...
I added the lexing files to the VStudio projects and removed the .l files from the
VStudio projects. There was a problem with use of strtoll in TGLexer.cpp and Chris
suggested switching to strtol, so that's included here.
Additionally, this checkin adds minimal x64 builds to the VStudio builds. Build issues
related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc
are worked around, but not ultimately solved. Binaries used to be stored in
...\win32\{Debug|Release}
but are now kept in
...\win32\bin\{win32|x64}\{Debug|Release}
intermediate files will continue to be stored in the individual project directories under
win32.
Some names will likely change in the future to reflect that the vstudio projects
are no longer 32-bit only, but I wanted to get things up and running today so kept away
from bigger restructuring.
llvm-svn: 44260
2007-11-21 00:37:56 +00:00
Dale Johannesen
f265bec4b0
File missing from previous patch.
...
llvm-svn: 44259
2007-11-20 23:25:17 +00:00
Dale Johannesen
763e110a9f
Fix .eh table linkage issues on Darwin. Some EH support
...
for Darwin PPC, but it's not fully working yet.
llvm-svn: 44258
2007-11-20 23:24:42 +00:00
Chris Lattner
8b9ecdad0c
Add the ability to convert a tblgen type to a string.
...
llvm-svn: 44257
2007-11-20 22:25:16 +00:00
Duncan Sands
04eb67e69a
In order for parameter attribute uniquing to make
...
any sense it is important that ParamAttr::None gets
treated the same as not supplying an attribute at
all. Rather than stripping ParamAttr::None out of
the list of attributes, assert if ParamAttr::None
is seen. Fix up the bitcode reader which liked to
insert ParamAttr::None all over the place. Patch
based on one by Török Edwin.
llvm-svn: 44250
2007-11-20 14:09:29 +00:00
Nick Lewycky
74a26e3750
Small cleanup. Use APInt::getHighBitsSet method instead of shift left.
...
"setcc" -> "icmp op" in comments. No functionality change.
llvm-svn: 44249
2007-11-20 08:44:50 +00:00
Nick Lewycky
5b18bd3368
Be more careful when transforming | to +. Patch from Wojciech Matyjewicz.
...
llvm-svn: 44248
2007-11-20 08:24:44 +00:00
Chris Lattner
6edac0ad1d
Testcase for PR1811
...
llvm-svn: 44244
2007-11-19 21:43:22 +00:00
Chris Lattner
09c0393d5e
ExpandUnalignedLoad doesn't handle vectors right at all apparently.
...
Fix a couple of problems:
1. Don't assume the VT-1 is a VT that is half the size.
2. Treat vectors of FP in the vector path, not the FP path.
This has a couple of remaining problems before it will work with
the code in PR1811: the code below this change assumes that it can
use extload/shift/or to construct the result, which isn't right for
vectors.
This also doesn't handle vectors of 1 or vectors that aren't pow-2.
llvm-svn: 44243
2007-11-19 21:38:03 +00:00
Chris Lattner
6fa95ec19d
Implement vector expand support for shuffle_vector. This fixes PR1811.
...
llvm-svn: 44242
2007-11-19 21:16:54 +00:00
Dan Gohman
aad83c8ee5
Remove meaningless qualifiers from return types, avoiding compiler warnings.
...
llvm-svn: 44240
2007-11-19 20:46:23 +00:00
Chris Lattner
67d77945e7
Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811
...
llvm-svn: 44239
2007-11-19 20:21:32 +00:00
Owen Anderson
c280216c00
Teach me to do stuff late at night.
...
llvm-svn: 44236
2007-11-19 16:10:59 +00:00
Dan Gohman
12a8610490
Fix a typo in a comment.
...
llvm-svn: 44235
2007-11-19 15:36:19 +00:00
Dan Gohman
d32081002e
Add explicit keywords.
...
llvm-svn: 44234
2007-11-19 15:30:20 +00:00
Dan Gohman
36347a26f9
Add support in SplitVectorOp for remainder operators.
...
llvm-svn: 44233
2007-11-19 15:15:03 +00:00
Owen Anderson
99057116f6
Fix a factually incorrect statement pointed out by Max Hailperin.
...
llvm-svn: 44228
2007-11-19 07:44:43 +00:00
Chris Lattner
4205d25f06
Record the start of the current token, for use in error reporting.
...
llvm-svn: 44227
2007-11-19 07:43:52 +00:00
Chris Lattner
1a26296453
Add carat diagnostics to tblgen lexer errors.
...
llvm-svn: 44226
2007-11-19 07:38:58 +00:00
Chris Lattner
44158478bb
Fix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN return
...
a valid but empty buffer if stdin is empty.
llvm-svn: 44219
2007-11-18 18:52:28 +00:00
Chris Lattner
b01e500f16
autoupgrade files that use callfoo as call foo.
...
llvm-svn: 44218
2007-11-18 18:43:24 +00:00
Chris Lattner
f527037485
print a call to a fastcc function as:
...
call x86_fastcallcc void @func( i32* %X, i64 0 )
not:
callx86_fastcallcc void @func( i32* %X, i64 0 )
This fixes Codegen/X86/fast-cc-merge-stack-adj.ll
llvm-svn: 44217
2007-11-18 18:32:16 +00:00
Chris Lattner
861302e264
fix bogus test that the more strict lexer is finding.
...
llvm-svn: 44216
2007-11-18 18:26:45 +00:00
Chris Lattner
c3cc30cdb8
Bugfix, this fixes CodeGen/X86/ldzero.ll and CodeGen/X86/2007-10-16-fp80_select.ll
...
llvm-svn: 44215
2007-11-18 18:25:18 +00:00
Chris Lattner
660c6b9a92
Replace the original flex lexer with a hand writen one. This
...
drops a dependency on flex and lets us make future progress more
easily. Yay for 2 fewer .cvs files to make silly conflicts with.
llvm-svn: 44213
2007-11-18 08:46:26 +00:00
Chris Lattner
6070028736
minor cleanups
...
llvm-svn: 44212
2007-11-18 05:48:46 +00:00
Chris Lattner
98c39513ab
ensure header is self contained.
...
llvm-svn: 44211
2007-11-18 05:25:45 +00:00
Chris Lattner
da4ab67127
reimplement the tblgen lexer with a simple hand-written lexer. This eliminates
...
one dependency on flex and gets rid of two ".cvs" files.
llvm-svn: 44210
2007-11-18 02:57:27 +00:00
Nate Begeman
d4d45c268c
Add support for vectors to int <-> float casts.
...
llvm-svn: 44204
2007-11-17 03:58:34 +00:00
Ted Kremenek
b6c40f3f1b
Reverted patch 44199:
...
http://llvm.org/viewvc/llvm-project?rev=44199&view=rev
This patch completely broke serialization due to an invariant I assumed but
did not hold. The assumed invariant was that all pointer IDs emitted by a call
to BatchEmitOwnedPtrs would be consecutive. This is only the case if there has
been no forward references to an owned pointer (and hence already registered
with the Serializer object).
llvm-svn: 44203
2007-11-17 03:34:33 +00:00
Dale Johannesen
7d97662467
Remove indeterminism from a loop. We think this will
...
fix an occasional nonrepeatable bootstrap failure we've
been seeing on Darwin.
llvm-svn: 44202
2007-11-17 02:48:01 +00:00
Dale Johannesen
06a10df562
Fix denormal check in float->APInt conversion.
...
PR 1804.
llvm-svn: 44201
2007-11-17 01:02:27 +00:00
Ted Kremenek
9d89f980aa
Changed implementation of Serialize::EmitDiffPtrID and
...
Deserialize::ReadDiffPtrID to read and emit bools instead of unsigned
integers. This should result in a nice space optimization once we have
"auto-abbreviation" generation in place.
llvm-svn: 44200
2007-11-17 00:45:37 +00:00
Ted Kremenek
4d1e79c8ac
Implemented optimization for BatchEmitOwnedPtrs that we only emit one complete
...
SerializedPtrID, followed by the *differences* in IDs. The big idea is that
most IDs will be just be 1 off from the previous (either that or NULL, which
we encode as a difference if 0), so this will greatly reduce the encoding
space for extra IDs to just 1 bit per pointer.
So far this optimization reduces serialization of Carbon.h by only 1%, but
we aren't using any abbreviations now in the Bitcode file to properly take
advantage of this optimization.
llvm-svn: 44199
2007-11-17 00:40:45 +00:00
Evan Cheng
8e22379303
Live interval splitting:
...
When a live interval is being spilled, rather than creating short, non-spillable
intervals for every def / use, split the interval at BB boundaries. That is, for
every BB where the live interval is defined or used, create a new interval that
covers all the defs and uses in the BB.
This is designed to eliminate one common problem: multiple reloads of the same
value in a single basic block. Note, it does *not* decrease the number of spills
since no copies are inserted so the split intervals are *connected* through
spill and reloads (or rematerialization). The newly created intervals can be
spilled again, in that case, since it does not span multiple basic blocks, it's
spilled in the usual manner. However, it can reuse the same stack slot as the
previously split interval.
This is currently controlled by -split-intervals-at-bb.
llvm-svn: 44198
2007-11-17 00:40:40 +00:00
Evan Cheng
aa72f72bd3
Shrinkfy.
...
llvm-svn: 44197
2007-11-17 00:31:16 +00:00
Evan Cheng
13e8b022f5
Typo.
...
llvm-svn: 44196
2007-11-16 23:55:08 +00:00
Dale Johannesen
a674612d94
Testcase from PR 1508 (although its's somewhat
...
orthogonal to the main problem there)
llvm-svn: 44194
2007-11-16 23:16:35 +00:00
Tanya Lattner
1db762ba63
Fix for PR1801
...
llvm-svn: 44193
2007-11-16 22:44:50 +00:00
Anton Korobeynikov
b8a47244ac
These were implemented
...
llvm-svn: 44189
2007-11-16 11:12:01 +00:00
Chris Lattner
c53b18362a
Fix PR1800 by correcting mistaken logic.
...
llvm-svn: 44188
2007-11-16 06:04:17 +00:00
Chris Lattner
1b3f58a816
fix a typo
...
llvm-svn: 44187
2007-11-16 05:32:05 +00:00
Anton Korobeynikov
91460e43f1
Implement codegen for flt_rounds on x86
...
llvm-svn: 44183
2007-11-16 01:31:51 +00:00
Anton Korobeynikov
66b91e66ec
Implement necessary bits for flt_rounds gcc builtin.
...
Codegen bits and llvm-gcc support will follow.
llvm-svn: 44182
2007-11-15 23:25:33 +00:00
Nate Begeman
bd117f06ba
Basic non-power-of-2 vector support
...
llvm-svn: 44181
2007-11-15 21:15:26 +00:00
Anton Korobeynikov
6a7ddfdb8f
Reverted r44163 per request
...
llvm-svn: 44177
2007-11-15 18:33:16 +00:00
Daniel Berlin
bb3b099f82
Fix bugs in iterator invalidation
...
llvm-svn: 44174
2007-11-15 18:06:49 +00:00
Duncan Sands
d4494352f8
This assertion was bogus.
...
llvm-svn: 44167
2007-11-15 09:54:37 +00:00
Evan Cheng
2c1a50455c
Fix a thinko in post-allocation coalescer.
...
llvm-svn: 44166
2007-11-15 08:13:29 +00:00
Nick Lewycky
fbb24817cc
Fix handling of overflow in loop calculation by adding new UDiv SCEV. This SCEV
...
is disabled in the sense that it will refuse to create one from a UDiv
instruction, until the code is better tested.
llvm-svn: 44163
2007-11-15 06:30:50 +00:00
Chris Lattner
0841c3b560
Fix PR1788 by taking the approach suggested by Richard Smith.
...
Thanks to him for his detailed analysis of the problem.
llvm-svn: 44162
2007-11-15 06:10:55 +00:00
Chris Lattner
820c1447b4
Import the boost scoped_ptr class to LLVM. This patch was prepared by
...
Cédric Venet.
llvm-svn: 44161
2007-11-15 05:57:06 +00:00
Owen Anderson
1b74a9a628
More templatization.
...
llvm-svn: 44158
2007-11-15 05:00:15 +00:00
Chris Lattner
add10eecf9
many edits, patch by Kelly Wilson!
...
llvm-svn: 44157
2007-11-15 04:51:31 +00:00
Bill Wendling
b3712f8146
Adding debug output during coalescing.
...
llvm-svn: 44154
2007-11-15 02:06:30 +00:00
Bill Wendling
8269925b1e
Need to increment the iterator.
...
llvm-svn: 44153
2007-11-15 00:40:48 +00:00
Ted Kremenek
c5f3e5371c
Fixed serious bug in BatchReadOwnedPtrs where in a chain of calls to
...
deserialize objects if BatchReadOwnedPtrs was called more than once in the
same call chain then the second call would overwrite the SerializedPtrIDs
being used by the first call. Solved this problem by making the vector that
holds the pointer IDs local to a function call. Now BatchReadOwnedPtrs is
reentrant.
llvm-svn: 44152
2007-11-15 00:05:03 +00:00
Duncan Sands
f171b35c8b
I discover array_lengthof, thanks to gabor on #llvm.
...
llvm-svn: 44139
2007-11-14 21:58:02 +00:00
Duncan Sands
730a32643f
Tweak the descriptions of the new 'const' and 'pure' attributes.
...
llvm-svn: 44132
2007-11-14 21:14:02 +00:00
Evan Cheng
0cbe920d7c
Oops. Debugging code shouldn't have been checked in.
...
llvm-svn: 44128
2007-11-14 19:08:32 +00:00
Ted Kremenek
1172416d65
Removed debug #define that was accidentally checked in while debugging
...
the deserializer.
Fixed assertion when "stream jumping" in the deserializer to properly function
when we have reached the end of the stream.
llvm-svn: 44124
2007-11-14 17:42:09 +00:00
Duncan Sands
9e12a3f020
Simplify the attribute verification code.
...
llvm-svn: 44116
2007-11-14 14:02:11 +00:00
Duncan Sands
544e64aa96
Un XFAIL these tests, now that Bill has backported
...
the fix from 4.2.
llvm-svn: 44115
2007-11-14 13:40:53 +00:00
Anton Korobeynikov
46f4446bba
Document pure/const parameter attributes
...
llvm-svn: 44111
2007-11-14 10:30:13 +00:00
Anton Korobeynikov
6ca98cd532
Regenerate
...
llvm-svn: 44110
2007-11-14 09:53:48 +00:00
Anton Korobeynikov
ea09c697d7
Add pure/const attributes. Documentation will follow.
...
llvm-svn: 44109
2007-11-14 09:52:30 +00:00
Anton Korobeynikov
2c6387803e
Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied
...
to all targets uses GOT-relative offsets for PIC (Alpha?)
llvm-svn: 44108
2007-11-14 09:18:41 +00:00
Duncan Sands
e2287ed552
Eliminate the recently introduced CCAssignToStackABISizeAlign
...
in favour of teaching CCAssignToStack that size 0 and/or align
0 means to use the ABI values. This seems a neater solution.
It is safe since no legal value type has size 0.
llvm-svn: 44107
2007-11-14 08:29:13 +00:00
Ted Kremenek
545f7e39e1
Added two new overloaded versions of BatchEmitOwnedPtrs and
...
BatchReadOwnedPtrs.
llvm-svn: 44105
2007-11-14 08:05:03 +00:00
Evan Cheng
7f02cfa599
Clean up sub-register implementation by moving subReg information back to
...
MachineOperand auxInfo. Previous clunky implementation uses an external map
to track sub-register uses. That works because register allocator uses
a new virtual register for each spilled use. With interval splitting (coming
soon), we may have multiple uses of the same register some of which are
of using different sub-registers from others. It's too fragile to constantly
update the information.
llvm-svn: 44104
2007-11-14 07:59:08 +00:00
Duncan Sands
9c30fc234c
XFAIL these tests until the fix gets backported
...
from llvm-gcc-4.2 to 4.0.
llvm-svn: 44103
2007-11-14 07:42:50 +00:00
Chris Lattner
322a04ec7c
Document a limitation, patch contributed by George Russell
...
llvm-svn: 44102
2007-11-14 07:04:44 +00:00
Nick Lewycky
c6243020a6
Allow the block extractor take to take a list of basic blocks to not extract
...
from a file containing Function/BasicBlock pairings. This is not safe against
anonymous or abnormally-named Funcs or BBs.
Make bugpoint use this interface to pass the BBs list to the child bugpoint.
llvm-svn: 44101
2007-11-14 06:47:06 +00:00
Chris Lattner
a77e74edba
Implement PR1796 and Transforms/SimplifyCFG/noreturn-call.ll
...
by inserting unreachable after no-return calls.
llvm-svn: 44099
2007-11-14 06:19:25 +00:00
Owen Anderson
9306de0727
Start the process of making MachineLoopInfo possible by templating Loop.
...
llvm-svn: 44097
2007-11-14 02:33:58 +00:00
Hartmut Kaiser
6f5421cbee
Fixed a compilation error.
...
llvm-svn: 44083
2007-11-13 23:04:28 +00:00
Hartmut Kaiser
dde99f6a07
Fixed a strange construct. Please review.
...
llvm-svn: 44082
2007-11-13 23:04:06 +00:00
Hartmut Kaiser
1d4816584f
Updated VC++ build system
...
llvm-svn: 44081
2007-11-13 23:03:32 +00:00
Chris Lattner
68f04fa941
Fix the regression on Transforms/GlobalOpt/deadglobal-2.ll from my
...
patch on friday.
llvm-svn: 44068
2007-11-13 21:46:23 +00:00
Chris Lattner
f150ace6cb
upgrade test
...
llvm-svn: 44067
2007-11-13 21:42:48 +00:00
Owen Anderson
d8167ab332
Run computeDomForest() on the set of registers that need to be tested for
...
interference.
llvm-svn: 44064
2007-11-13 20:13:24 +00:00
Owen Anderson
569ef71e44
Preserve LiveVariables when doing critical edge splitting.
...
llvm-svn: 44063
2007-11-13 20:04:45 +00:00
Owen Anderson
4696e959fe
Wow. I definitely shouldn't write code when I'm tird.
...
Make my previous patch actually do what it was intended to do.
llvm-svn: 44061
2007-11-13 19:56:28 +00:00
Dale Johannesen
7904708369
Revert previous; these files aren't ready to go in yet.
...
llvm-svn: 44057
2007-11-13 19:16:02 +00:00
Dale Johannesen
7a7085f6d3
Add parameter to getDwarfRegNum to permit targets
...
to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.
llvm-svn: 44056
2007-11-13 19:13:01 +00:00
Chris Lattner
07328f0b8b
Make llvm2cpp better, patch for PR1794, contributed by Zack Rusin.
...
llvm-svn: 44051
2007-11-13 18:22:33 +00:00
Evan Cheng
c891ae92dc
Fix x86-64 jit: remove reliance on Dwarf numbers.
...
llvm-svn: 44048
2007-11-13 17:54:34 +00:00
Bill Wendling
77b13af9a6
Unifacalize the CALLSEQ{START,END} stuff.
...
llvm-svn: 44045
2007-11-13 09:19:02 +00:00
Chris Lattner
61ce4dff7a
Implement PR1786 by iterating between dead cycle elimination
...
and simplifycfg in the rare cases when it is needed.
llvm-svn: 44044
2007-11-13 07:32:38 +00:00
Chris Lattner
36d5575660
Many typos, grammaro, and wording fixes. Patch by
...
Kelly Wilson, thanks!
llvm-svn: 44043
2007-11-13 07:06:30 +00:00
Bill Wendling
f359fed9f9
Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack
...
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).
This can only result in tears...
llvm-svn: 44037
2007-11-13 00:44:25 +00:00
Ted Kremenek
e7033b0356
Renamed serialization method "Materialize" to "Create". This is an API change.
...
llvm-svn: 44034
2007-11-13 00:25:08 +00:00
Ted Kremenek
be0a4b734e
Fixed bug with inconsistent serialization/deserialization in matching
...
calls to BatchEmitOwnedPtrs and BatchReadOwnedPtrs.
llvm-svn: 44032
2007-11-13 00:13:57 +00:00
Bill Wendling
c8f2f68e87
Move SYSCTL stuff close to where it's used.
...
llvm-svn: 44031
2007-11-12 23:55:19 +00:00
Devang Patel
f48ae28600
Build universal llvm.
...
llvm-svn: 44030
2007-11-12 23:53:43 +00:00
Anton Korobeynikov
bfb139ec93
Completely forgot, that we have some debug information emission on PPC. This should fix
...
some regressions on ppc nightly tests.
llvm-svn: 44029
2007-11-12 23:36:13 +00:00
Bruno Cardoso Lopes
b439132d16
Added JumpTable support
...
Fixed some AsmPrinter issues
Added GLOBAL_OFFSET_TABLE Node handle.
llvm-svn: 44024
2007-11-12 19:49:57 +00:00
Ted Kremenek
e33ba16368
Added versions of ReadPtr that takes an explicit SerializedPtrID. This allows
...
clients of the Deserializer to read the pointer ID before they are ready
to deserialize the object (which can mean registering a pointer reference
with the backpatcher).
Changed some methods that took an argument "SerializedPtrID" to "const SerializedPtrID&" (pass-by-reference). This is to accommodate a future
revision of SerializedPtrID where it may be much fatter than an unsigned
integer.
llvm-svn: 44021
2007-11-12 19:11:15 +00:00
Owen Anderson
c520c4b325
Break critical edges coming into blocks with PHI nodes.
...
llvm-svn: 44019
2007-11-12 17:27:27 +00:00
Gordon Henriksen
1ced282c73
Typo fix in the tutorial.
...
llvm-svn: 44014
2007-11-12 13:46:21 +00:00
Duncan Sands
5dc0c9282f
Compile fix.
...
llvm-svn: 44013
2007-11-12 13:43:23 +00:00
Owen Anderson
933b5b7e62
Add a flag for indirect branch instructions.
...
Target maintainers: please check that the instructions for your target are correctly marked.
llvm-svn: 44012
2007-11-12 07:39:39 +00:00
Evan Cheng
be51f28e2b
Refactor some code.
...
llvm-svn: 44010
2007-11-12 06:35:08 +00:00
Owen Anderson
556fb3467b
Fix rewriting of PHI nodes.
...
Could someone more familiar with machine-level stuff review this for me?
llvm-svn: 44005
2007-11-12 02:13:07 +00:00
Hartmut Kaiser
28af9f7d00
Updated VC++ build system
...
llvm-svn: 44004
2007-11-12 01:24:50 +00:00
Owen Anderson
f66f0d619a
Remove unnecessary #include's.
...
llvm-svn: 44003
2007-11-12 01:19:28 +00:00
Owen Anderson
a1cd45213d
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need
...
to be a pass of its own. Instead, move it out into a helper method.
llvm-svn: 44002
2007-11-12 01:05:09 +00:00
Owen Anderson
55f4e5d2dd
Fix on 64-bit machines.
...
llvm-svn: 44001
2007-11-12 00:56:04 +00:00
Anton Korobeynikov
0644bb865e
Clarify the meaning of '-2' register number
...
llvm-svn: 43998
2007-11-11 19:53:50 +00:00
Anton Korobeynikov
4edfea438a
Use TableGen to emit information for dwarf register numbers.
...
This makes DwarfRegNum to accept list of numbers instead.
Added three different "flavours", but only slightly tested on x86-32/linux.
Please check another subtargets if possible,
llvm-svn: 43997
2007-11-11 19:50:10 +00:00
Anton Korobeynikov
a468a11d80
Add convenient helper to obtain list of ints
...
llvm-svn: 43993
2007-11-11 11:19:37 +00:00
Dale Johannesen
b988e7e8cd
Add CCAssignToStackABISizeAlign for convenience in
...
dealing with types whose size & alignment are
different on different subtargets. Use it for x86 f80.
llvm-svn: 43988
2007-11-10 22:07:15 +00:00
Ted Kremenek
b0cdfeb4ba
Fixed a bug introduced by my last patch. Now we properly clear out the BatchIDVec
...
vector before reusing it.
llvm-svn: 43984
2007-11-10 19:33:26 +00:00
Ted Kremenek
cdf5fca367
Fixed hack in BatchReadOwnedPtrs to no longer use the array of pointers passed in for
...
deserialization as a temporary location for storing serialized pointer identifiers. The
definition of SerializedPtrID will likely change significantly in the future, and the
current implementation caused compilation errors on some 64-bit machines.
llvm-svn: 43983
2007-11-10 19:28:49 +00:00
Ted Kremenek
195c478e1b
Updated method signature to conform with the typedef in the method prototype.
...
llvm-svn: 43982
2007-11-10 19:19:32 +00:00
Arnold Schwaighofer
d2c16ff905
Update tailcall code to include inline attribute operand for memcpy.
...
llvm-svn: 43978
2007-11-10 10:48:01 +00:00
Ted Kremenek
55e30be8ec
Added "random access" to the Deserializer to allow a client to jump to any
...
serialized block in the bitstream, including a block in an entirely different
nesting than the current block. This is useful for deserializing objects from
a bitstream in an order different from the order that they were serialized.
llvm-svn: 43973
2007-11-10 02:02:34 +00:00
Ted Kremenek
a7f49ce570
Made Deserializer a friend class of BitstreamReader.
...
Moved some of the logic in BitstreamReader::ExitBlock into a utility function
BitstreamReader::PopBlockScope. The latter is a private method. It will also
be called by Deserializer to manipulate the current "block scope."
llvm-svn: 43972
2007-11-10 02:00:38 +00:00
Evan Cheng
9e0216deab
Added -test-opts to specify test options.
...
llvm-svn: 43971
2007-11-10 01:33:27 +00:00
Chris Lattner
f9f08bf4b0
Update links.
...
llvm-svn: 43964
2007-11-09 21:49:08 +00:00
Evan Cheng
05b94b8c13
Fix tests.
...
llvm-svn: 43961
2007-11-09 20:46:00 +00:00
Hartmut Kaiser
67297144ab
Fixed a strange construct. Please review.
...
llvm-svn: 43960
2007-11-09 19:59:00 +00:00
Hartmut Kaiser
76886e1875
Updated VC++ build system
...
llvm-svn: 43959
2007-11-09 19:54:59 +00:00
Chris Lattner
da043b68ad
try again
...
llvm-svn: 43956
2007-11-09 19:24:54 +00:00
Evan Cheng
fb13fd6f93
Unbreak x86-64 jumptable.
...
llvm-svn: 43955
2007-11-09 19:11:23 +00:00
Anton Korobeynikov
5db5e352b9
Silence a warning
...
llvm-svn: 43954
2007-11-09 19:06:14 +00:00
Dale Johannesen
dfb85c7831
Revert previous rewrite per chris's comments.
...
llvm-svn: 43950
2007-11-09 18:07:11 +00:00
Chris Lattner
f9c0fd7488
Tighten up a check for folding away loads from (newly constant) globals. This
...
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and
rdar://5585488.
llvm-svn: 43949
2007-11-09 17:33:02 +00:00
Duncan Sands
303a5d6c8b
Thanks to the XTARGET line, this test should still
...
be run on darwin, but I have no way of checking...
llvm-svn: 43945
2007-11-09 13:50:25 +00:00
Duncan Sands
e795efea5b
Move MinAlign to MathExtras.h.
...
llvm-svn: 43944
2007-11-09 13:41:39 +00:00
Anton Korobeynikov
550b98e147
Fix indent
...
llvm-svn: 43941
2007-11-09 12:34:20 +00:00
Anton Korobeynikov
98638aede6
Forget to commit users part of value mapper interface
...
llvm-svn: 43940
2007-11-09 12:27:04 +00:00
Anton Korobeynikov
8eeca1c252
And delete this one
...
llvm-svn: 43939
2007-11-09 12:22:04 +00:00
Anton Korobeynikov
7a96822f32
Make this header public
...
llvm-svn: 43938
2007-11-09 12:16:58 +00:00
Duncan Sands
e7a9ac929f
Fix some load/store logic that would be wrong for
...
apints on big-endian machines if the bitwidth is
not a multiple of 8. Introduce a new helper,
MVT::getStoreSizeInBits, and use it.
llvm-svn: 43934
2007-11-09 08:57:19 +00:00
Duncan Sands
bab9dc9433
Add terminating newline.
...
llvm-svn: 43933
2007-11-09 08:30:21 +00:00
Duncan Sands
0c7fba914d
Check that the first and third characters, s and u,
...
are accessed with an alignment of 2 not 1.
llvm-svn: 43932
2007-11-09 07:47:29 +00:00
Duncan Sands
1445725759
Check that accesses to the second short, t, have
...
an alignment of 2 rather than 4.
llvm-svn: 43931
2007-11-09 07:46:02 +00:00
Bill Wendling
71df1dd59e
Initial commit of files that support building LLVM the "Apple" way.
...
llvm-svn: 43929
2007-11-09 06:59:33 +00:00
Nick Lewycky
70248c92cf
Add a link to the tutorial.
...
llvm-svn: 43928
2007-11-09 05:45:51 +00:00
Evan Cheng
797d56ff17
Much improved pic jumptable codegen:
...
Then:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
imull $4, %ecx, %ecx
leal LJTI1_0-"L1$pb"(%eax), %edx
addl LJTI1_0-"L1$pb"(%ecx,%eax), %edx
jmpl *%edx
.align 2
.set L1_0_set_3,LBB1_3-LJTI1_0
.set L1_0_set_2,LBB1_2-LJTI1_0
.set L1_0_set_5,LBB1_5-LJTI1_0
.set L1_0_set_4,LBB1_4-LJTI1_0
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
Now:
call "L1$pb"
"L1$pb":
popl %eax
...
LBB1_1: # entry
addl LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax
jmpl *%eax
.align 2
.set L1_0_set_3,LBB1_3-"L1$pb"
.set L1_0_set_2,LBB1_2-"L1$pb"
.set L1_0_set_5,LBB1_5-"L1$pb"
.set L1_0_set_4,LBB1_4-"L1$pb"
LJTI1_0:
.long L1_0_set_3
.long L1_0_set_2
llvm-svn: 43924
2007-11-09 01:32:10 +00:00
Evan Cheng
f14006f4d6
Didn't mean to check these in.
...
llvm-svn: 43923
2007-11-09 01:28:33 +00:00
Evan Cheng
1bf166312b
Bug fix. Passive nodes are not in SUnitMap.
...
llvm-svn: 43922
2007-11-09 01:27:11 +00:00
Chuck Rose III
0e7937654c
Adding some recently added files to the VStudio projects
...
llvm-svn: 43919
2007-11-09 00:48:27 +00:00
Dale Johannesen
04fd82088e
Rewrite Dwarf number handling per review comments.
...
llvm-svn: 43918
2007-11-09 00:47:10 +00:00
Ted Kremenek
1d9406c1ca
Updated Deserializer class to provide more information about the current
...
block that is being visited in the bitstream. The client can also now
skip blocks before reading them, and query the current abbreviation number
as seen from the perspective of the Deserializer. This allows the client
to be more interactive in the deserialization process (if they so choose).
llvm-svn: 43916
2007-11-09 00:43:51 +00:00
Devang Patel
94785aa1c7
Run this test only on darwin.
...
llvm-svn: 43912
2007-11-08 22:26:46 +00:00
Owen Anderson
65d2fcdd2a
This preserves critical edge breaking.
...
llvm-svn: 43911
2007-11-08 22:23:57 +00:00
Owen Anderson
3bc8124a66
Make BreakCriticalMachineEdges available as a pass that can be depended on.
...
llvm-svn: 43910
2007-11-08 22:20:23 +00:00
Ted Kremenek
67135ebaff
Added typedef "SerializedPtrID" to represent the pointer handle written to disk
...
instead of just using "unsigned". This gives us more flexibility in changing
the definition of the handle later, and is more self-documenting.
Added tracking of block stack in the Deserializer. Now clients can query
if they are still within a block using the methods GetCurrentBlockLocation()
and FinishedBlock().
llvm-svn: 43903
2007-11-08 19:50:46 +00:00
Andrew Lenharth
19ca5c7021
Better check
...
llvm-svn: 43897
2007-11-08 18:45:15 +00:00
Andrew Lenharth
8cf11aa330
Fix PR1780
...
llvm-svn: 43893
2007-11-08 17:39:28 +00:00
Lauro Ramos Venancio
f6a67bf700
[ARM] Implement __builtin_thread_pointer.
...
llvm-svn: 43892
2007-11-08 17:20:05 +00:00
Evan Cheng
ece4c68b82
If both parts of smul_lohi, etc. are used, don't simplify. If only one part is used, try simplify it.
...
llvm-svn: 43888
2007-11-08 09:25:29 +00:00
Owen Anderson
0be8c1dafe
Add the majority of machine-level critical edge breaking pass. Most of this was written by Fernando, cleanup and updating to TOT by me.
...
This still needs a bit of work, particularly to handle jump tables properly.
llvm-svn: 43885
2007-11-08 07:55:43 +00:00
Owen Anderson
bfbc12973d
Take another stab at getting isLiveIn() and isLiveOut() right.
...
llvm-svn: 43869
2007-11-08 01:32:45 +00:00
Owen Anderson
4ac4ec215f
Fix MachineDominators' getAnalysisUsage.
...
llvm-svn: 43868
2007-11-08 01:22:53 +00:00
Owen Anderson
17296e74b1
Oops, forgot to commit this file.
...
llvm-svn: 43867
2007-11-08 01:22:24 +00:00
Owen Anderson
9d86ef12c8
Bring UsedBlocks back. StrongPHIElimination needs this information.
...
llvm-svn: 43866
2007-11-08 01:20:48 +00:00
Ted Kremenek
89704afa43
Revised BatchEmitOwnedPtrs to work better with constant pointers.
...
llvm-svn: 43861
2007-11-08 00:55:31 +00:00
Ted Kremenek
8f74abd34a
Revised implementation of BatchReadOwnedPtrs() that deserializes an
...
array of pointers to not allocate a second array to contain the pointer ids.
Fixed bug in the same member function where deserialized pointers were
not being registered with the backpatcher.
llvm-svn: 43855
2007-11-08 00:04:50 +00:00
Ted Kremenek
14b5fe537e
Fixed bug where we did not properly serialize owned objects due to a missing
...
dereference.
llvm-svn: 43853
2007-11-07 23:32:06 +00:00
Ted Kremenek
1125bfa648
Added version of BatchEmitOwnedPtrs and BatchReadOwnedPtrs that emits/reads
...
an array of pointers of the same type.
llvm-svn: 43852
2007-11-07 23:18:40 +00:00
Ted Kremenek
e079cb7b08
Added methods to batch emit and deserialize owned pointers. This allows
...
to group the pointer IDs together in the bitstream before their referenced
contents (which will lend itself to more efficient encoding).
llvm-svn: 43845
2007-11-07 22:30:29 +00:00
Dale Johannesen
1b9de4dd6f
Complete conditionalization of Dwarf reg numbers.
...
Would somebody not on Darwin please make sure this
doesn't break anything. Exception handling failures
would be the most likely symptom.
llvm-svn: 43844
2007-11-07 21:48:35 +00:00
Bill Wendling
6e976915a3
Add testcase
...
llvm-svn: 43839
2007-11-07 19:36:26 +00:00
Hartmut Kaiser
b1d7cb2938
Updated VC++ build system
...
llvm-svn: 43837
2007-11-07 19:34:09 +00:00
Hartmut Kaiser
b964f650c9
Fixed compilation errors on VC++.
...
llvm-svn: 43836
2007-11-07 19:33:31 +00:00
Ted Kremenek
81ad944c94
Implemented generic serialization of APFloat.
...
llvm-svn: 43829
2007-11-07 18:39:22 +00:00