Commit Graph

33684 Commits

Author SHA1 Message Date
Reid Spencer
ee0142e4a6 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40621 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 06:37:43 +00:00
Reid Spencer
bf7f45152c Allow the INREG parameter attribute to be added to functions. This permits the
function result to be passed in a register. This implements the GCC regparm
function attribute for llvm by translation to the InReg parameter attribute 
and fixes test/CFrontend/2002-07-30-SubregSetAssertion.c


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 06:37:27 +00:00
Reid Spencer
6e800fe6cb The InReg parameter attribute is valid on function results. The llvm-gcc-4.0
front end converts regparm attribute on the gcc function into InReg attribute 
on the llvm function. This fixes test/CFrontend/2002-07-30-SubrefSetAssertion.c


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 06:33:37 +00:00
Evan Cheng
4ebcc8c2f8 This isn't safe when there are uses of load's chain result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40617 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 06:21:44 +00:00
Chris Lattner
6240ab5022 Fix PR1581, patch by Timo Savola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 06:00:51 +00:00
Reid Spencer
d8e616b173 Regenerate (again).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 03:55:56 +00:00
Reid Spencer
6794e616c7 Don't include newlines in the whitespace before newline (WSNL) rule.
Fix the comment for WSNL to describe its actual function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40612 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 03:55:43 +00:00
Reid Spencer
b8f85050d1 Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 03:50:36 +00:00
Reid Spencer
1d3d230861 For PR1553:
Make the AsmParser auto-upgrade the old zext and sext
keywords for parameter attributes and handle the 
end-of-line ambiguity.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40610 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-31 02:57:37 +00:00
Devang Patel
6f62af6e64 If loop can be unswitched again, then do it yourself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40609 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 23:07:10 +00:00
Anton Korobeynikov
42346f58d8 Add a comment: don't expect from external function resolver in interpreter
things, it wasn't designed to handle.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 23:03:25 +00:00
Owen Anderson
891eecb040 Avoid potential iterator invalidation problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40607 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 21:26:39 +00:00
Devang Patel
df5cf2074c Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 21:10:44 +00:00
Scott Michel
910b66d8d6 - Allow custom lowering for CTPOP, CTTZ, CTLZ.
- Fixed an existing unexpanded tab.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 21:00:31 +00:00
Devang Patel
81a129c0fb LCSSA preserves dom info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 20:23:45 +00:00
Devang Patel
d9a6dcba9f Loop Rotation pass preserves dominator tree and frontier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 20:22:53 +00:00
Devang Patel
96b651c627 LICM preserves scalar evolution and dom frontier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 20:19:59 +00:00
Reid Spencer
9372f15d45 Regenerate for __dso_handle, per Anton's request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40601 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 20:13:24 +00:00
Anton Korobeynikov
3b30a6e92d Add detection of __dso_handle presence during configure. Use this information in the
JITer (short path is added for darwin). This is needed to properly JIT llvm-gcc-4.2-built
binaries, since cxa_atexit is enabled by default on much more targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40600 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 20:02:02 +00:00
Reid Spencer
ed3fa8552a Fix a typo/thinko.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 19:53:57 +00:00
Dan Gohman
be444ed6db Fix a bug in getCopyFromParts turned up in the testcase for PR1132.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40598 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 19:09:17 +00:00
Owen Anderson
45c8388e2a Use more caching when computing non-local dependence. This makes bzip2 not
use up the entire 32-bit address space.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 17:29:24 +00:00
Owen Anderson
4f9ba7c40c Fix a bug caused by indiscriminantly asking for the dominators of a predecessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40595 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 16:57:08 +00:00
Dan Gohman
825811dc83 Use tabs more consistently in assembler pseudo-ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40594 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 15:08:02 +00:00
Dan Gohman
286d56935c Print a space between the comment character and the basic block name,
for prettiness.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40593 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 15:06:25 +00:00
Dan Gohman
06dd2a68e1 Fix the comments for the 'fast' parameter in addPassesToEmitFile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 15:04:59 +00:00
Dan Gohman
d47cab81b6 Remove a FIXME comment that wasn't removed when the code it accompanied
was removed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40591 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 15:01:09 +00:00
Dan Gohman
fb71d38247 Fix the comment for getClosestTargetForJIT to reflect the fact that
it does not have a Module parameter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40590 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 14:58:59 +00:00
Dan Gohman
f452207d20 More explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 14:51:59 +00:00
Dan Gohman
209ee187c9 Fix pastos in comments for doFinalization functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40588 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 14:51:13 +00:00
Evan Cheng
a5e496ff07 New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40587 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 07:52:03 +00:00
Evan Cheng
66ffe6be0c Vector fneg must be expanded into fsub -0.0, X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40586 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-30 07:51:22 +00:00
Christopher Lamb
db9530599e Add tests for generating noalias parameter attribute from __restrict qualified function parameters. C++ tests are currently XFAILing see PR1582.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40583 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-29 23:29:16 +00:00
Reid Spencer
6551606a99 Be explicit about which level of optimization is being asked for. The -O option
is equivalent to -O1.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40581 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-29 18:23:22 +00:00
Christopher Lamb
2dc6dc619c Change the x86 backend to use extract_subreg for truncation operations. Passes DejaGnu, SingleSource and MultiSource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40578 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-29 01:24:57 +00:00
Christopher Lamb
f9b90ea955 Add register info needed to use subreg sets on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-28 19:03:30 +00:00
Nick Lewycky
8127f3a6e6 Make this explictly signed. Fixes PR1571.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40569 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-28 16:43:10 +00:00
Devang Patel
19fe8f907e Add facility to dump pass manager structure
to make it easier to understand failure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40567 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 20:06:09 +00:00
Duncan Sands
b116fac90f Trampoline codegen support for X86-32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40566 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 20:02:49 +00:00
Duncan Sands
50f19f5860 Forget to add 'nest' to the list of parameter
attributes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40565 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 19:57:41 +00:00
Devang Patel
c61ce1ad09 Fix edge cases in handling basic block split.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40564 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 19:13:43 +00:00
Devang Patel
29381fb7cd Use SmallPtrSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40560 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:34:27 +00:00
Chuck Rose III
936baaa5ae VStudio compiler errors and placing Function*->ExFunc map under ManagedStatic control.
This commit fixes two things.  One is a pair of VStudio compiler errors stemming from variables
which defined within the for loop statement and also within the body of the for loop.  I fixed these 
by renaming one of the two variables.  Additionally, I've made the Function*->ExFunc map in 
ExternalFunctions.cpp a ManagedStatic object, so that cleanup will be done on llvm_shutdown.  In repeated
uses of the interpreter, where the same Function* address may get used for completely differnet functions,
this was causing a crash.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40558 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:26:35 +00:00
Chuck Rose III
7c2c2e71ed Updates to the VStudio project files:
1. Switch from VStudio 2k3 to VStudio 2k5

2. All pdb files now will be placed as $(OutputDir)/$(ProjectName).pdb.  This puts them alongside the 
binaries with the same base name as the binary.  If you need to copy the results of your llvm build 
into another project's tree, this will simplify that process.

3. Recent files added to the tree were added to the proejects within the VStudio project

4. Project build dependency order fixed so that the build can take place in one pass.  A generated
file was not being built at the correct time, causing a build error in about half the projects until
the build was run a second time.

Note you will need flex and bison installed an in your path in order to build properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40557 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:20:11 +00:00
Owen Anderson
e992a56ae9 Allow SmallPtrSet to hold pointers to const data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40556 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:07:02 +00:00
Dan Gohman
d300622eba Re-apply 40504, but with a fix for the segfault it caused in oggenc:
Make the alignedload and alignedstore patterns always require 16-byte
alignment. This way when they are used in the "Fs" instructions, in which
a vector instruction is used for a scalar purpose, they can still require
the full vector alignment. And add a regression test for this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40555 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 17:16:43 +00:00
Duncan Sands
9d3e79107d It seems logical that InReg should be incompatible
with StructReturn and ByVal, so make it so.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40554 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 16:45:18 +00:00
Duncan Sands
fdef00f1f7 As the number of parameter attributes increases,
Verifier::visitFunction is suffering a combinatorial
explosion due to the number of mutually incompatible
attributes.  This patch tidies the whole thing up
using attribute masks.  While there I fixed some
small bugs: (1) the ByVal attribute tests cast a
type to a pointer type, which can fail.  Yes, the
fact it is of a pointer type is checked before,
but a failing check does not cause the program
to exit, it continues on outputting further errors;
(2) Nothing was checking that an sret attribute is
on the first parameter; (3) nothing was checking that
a function for which isStructReturn() is true has a
parameter with the sret attribute and vice-versa (I
don't think it is possible for this to go wrong, but
it seems right to check it).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40553 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 15:09:54 +00:00
Duncan Sands
36397f5034 Support for trampolines, except for X86 codegen which is
still under discussion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40549 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 12:58:54 +00:00
Christopher Lamb
ada779fb11 Move subreg lowering pass to be right after regalloc, per feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40548 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 07:36:14 +00:00