Hi Chris,
Nice. Out of curiousity, how does nest do to codegen?
'nest' causes a specific register to be grabbed for the
parameter in calls. So removing it doesn't do much :)
Ok.
if you want me to remove the transform, just ask :) I mostly did it
because seeing all those useless
Author: baldrick
Date: Mon Feb 18 11:32:13 2008
New Revision: 47273
URL: http://llvm.org/viewvc/llvm-project?rev=47273view=rev
Log:
Simplify caller updating using a CallSite, as
requested by Chris. While there, do the same
for an existing function committed by someone
called lattner :)
Hi Owen, nice transform!
+ // Check that we're copying to an argument...
+ Value* cpyDest = cpy-getDest();
+ if (!isaArgument(cpyDest))
+return false;
+
+ // And that the argument is the return slot
+ Argument* sretArg = castArgument(cpyDest);
+ if
Author: baldrick
Date: Sun Feb 17 22:19:38 2008
New Revision: 47256
URL: http://llvm.org/viewvc/llvm-project?rev=47256view=rev
Log:
Clarify that 'sret' only applies to pointers, and
only applies to the first parameter.
Modified:
llvm/trunk/docs/LangRef.html
Modified:
Hi Owen,
- (isaArgument(Object) castArgument(Object)-hasByValAttr(
{
- // Okay, the pointer is to a stack allocated object. If we can prove
that
+ (isaArgument(Object)
+ (castArgument(Object)-hasByValAttr() ||
+
Hi Dale,
Put back fixed version of code to avoid copying
padding within structs (sometimes).
if this means that ConvertUNION doesn't have to
muck around with fixing up padding elements anymore,
can you please remove that code.
Thanks!
Duncan.
___
Hi Andrew,
+handling llvm.memory.barrier on pre SSE2 cpus
+
+should generate:
+lock ; mov %esp, %esp
the linux kernel uses
lock; addl $0,0(%esp)
I don't know which is better (if any).
Ciao,
Duncan.
___
llvm-commits mailing list
Author: baldrick
Date: Sat Feb 16 03:47:41 2008
New Revision: 47211
URL: http://llvm.org/viewvc/llvm-project?rev=47211view=rev
Log:
Try to clarify which compilers can be used for the
build.
Modified:
llvm/trunk/docs/GCCFEBuildInstrs.html
Modified: llvm/trunk/docs/GCCFEBuildInstrs.html
URL:
Author: baldrick
Date: Sat Feb 16 04:29:26 2008
New Revision: 47212
URL: http://llvm.org/viewvc/llvm-project?rev=47212view=rev
Log:
Teach LegalizeTypes how to expand the operands of
br_cc. This fixes 5 make check failures.
Modified:
llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypes.h
Author: baldrick
Date: Sat Feb 16 14:53:06 2008
New Revision: 47219
URL: http://llvm.org/viewvc/llvm-project?rev=47219view=rev
Log:
Some micro-optimizations.
Modified:
llvm/trunk/lib/VMCore/ParameterAttributes.cpp
Modified: llvm/trunk/lib/VMCore/ParameterAttributes.cpp
URL:
Author: baldrick
Date: Sat Feb 16 14:56:04 2008
New Revision: 47220
URL: http://llvm.org/viewvc/llvm-project?rev=47220view=rev
Log:
Remove any 'nest' parameter attributes if the function
is not passed as an argument to a trampoline intrinsic.
Added:
Author: baldrick
Date: Sat Feb 16 14:59:48 2008
New Revision: 47221
URL: http://llvm.org/viewvc/llvm-project?rev=47221view=rev
Log:
For a nested function, the parent's variables
are like global variables for a normal function.
In particular a 'const' nested function can
reasonably return the
Author: baldrick
Date: Sat Feb 16 15:01:53 2008
New Revision: 47222
URL: http://llvm.org/viewvc/llvm-project?rev=47222view=rev
Log:
Remove some code originally inspired by
expand_assignment in expr.c. I don't think
this is needed, and I suspect it's not needed
in expand_assignment either and is
Hi Chris,
Remove any 'nest' parameter attributes if the function
is not passed as an argument to a trampoline intrinsic.
Nice. Out of curiousity, how does nest do to codegen?
'nest' causes a specific register to be grabbed for the
parameter in calls. So removing it doesn't do much :)
Thanks Chris! Can you please also update the 2.2 release notes, and
where it says (about Ada and Fortran) they need to be built from
source,
make that a link to GCCFEBuildIntrs.
We typically don't change the 2.2 release notes after it ships. Do
you mean the mainline release notes
Author: baldrick
Date: Fri Feb 15 13:34:17 2008
New Revision: 47172
URL: http://llvm.org/viewvc/llvm-project?rev=47172view=rev
Log:
Teach LegalizeTypes how to promote the flags
in a ret node. These are created as i32 constants
but on some platforms i32 is not legal. This
fixes 26 make check
On Thursday 14 February 2008 19:02:26 Dale Johannesen wrote:
On Feb 14, 2008, at 6:52 AM, Duncan Sands wrote:
Hi Dale, this test is failing for me (x86-32 linux):
there is nothing called retval.
// RUN: %llvmgxx -S -O0 -emit-llvm %s -o - | grep retval | grep S242
| grep {i32 1
It is not safe to call fork in PrintStackTrace. Sometimes it freezes the
program.
Is this in a signal handler? There are tight restrictions on what is allowed
in a signal handler, not just no forking :)
Ciao,
Duncan.
___
llvm-commits mailing list
Author: baldrick
Date: Fri Feb 15 13:42:13 2008
New Revision: 47173
URL: http://llvm.org/viewvc/llvm-project?rev=47173view=rev
Log:
Fix this test on linux, which returns S242
using sret.
Modified:
llvm/trunk/test/C++Frontend/2008-02-13-sret.cpp
Modified:
Hi Dale, this test is failing for me (x86-32 linux):
there is nothing called retval.
// RUN: %llvmgxx -S -O0 -emit-llvm %s -o - | grep retval | grep S242 | grep
{i32 1} | count 2
Ciao,
Duncan.
; ModuleID = '2008-02-13-sret.cpp'
target datalayout =
Author: baldrick
Date: Thu Feb 14 11:28:50 2008
New Revision: 47122
URL: http://llvm.org/viewvc/llvm-project?rev=47122view=rev
Log:
In TargetLowering::LowerCallTo, don't assert that
the return value is zero-extended if it isn't
sign-extended. It may also be any-extended.
Also, if a floating
Author: baldrick
Date: Thu Feb 14 11:53:22 2008
New Revision: 47124
URL: http://llvm.org/viewvc/llvm-project?rev=47124view=rev
Log:
Rename CFEBuildInstrs.html to GCCFEBuildInstrs.html.
Update all references to it and place a redirection
page at the old address.
Added:
update the one reference to CFEBuildInstrs.html that I see.
Thanks Chris! Can you please also update the 2.2 release notes, and
where it says (about Ada and Fortran) they need to be built from source,
make that a link to GCCFEBuildIntrs.
Ciao,
Duncan.
Hi Evan,
Finally, when doing libcalls, set isZExt on
a parameter if it is unsigned. Currently
isSExt is set when signed, and nothing is
set otherwise. This should be right for all
calls to standard library routines.
I am not sure I totally understand the reason for this. Is it
+# stack size: 100 MB should be enough for anybody. ;)
+ULIMITCMD=$ULIMITCMD ulimit -s 10;
What about over-all virtual memory (-v)?
D.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
+// treat m-n as signed nor unsinged due to overflow possibility.
unsinged - unsigned
Ciao,
D.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Author: baldrick
Date: Wed Feb 13 10:46:10 2008
New Revision: 47063
URL: http://llvm.org/viewvc/llvm-project?rev=47063view=rev
Log:
Add notes on Ada compilers that can be used for
the build. Put all items that the user should
specify in bold. Make it a debug build.
Modified:
Author: baldrick
Date: Wed Feb 13 12:01:53 2008
New Revision: 47075
URL: http://llvm.org/viewvc/llvm-project?rev=47075view=rev
Log:
Teach LegalizeTypes how to expand and promote CTLZ,
CTTZ and CTPOP. The expansion code differs from
that in LegalizeDAG in that it chooses to take the
CTLZ/CTTZ
Hi Devang, nice idea.
+ // Emit intermediate .bc file before module level optimization passes
are run. + if (emit_llvm_bc flag_debug_llvm_module_opt) {
Why condition this on emit_llvm_bc?
+static PassManager *IntermediatePM = new PassManager();
+IntermediatePM-add(new
Author: baldrick
Date: Tue Feb 12 15:28:39 2008
New Revision: 47028
URL: http://llvm.org/viewvc/llvm-project?rev=47028view=rev
Log:
Add more spacing.
Modified:
llvm/trunk/docs/CFEBuildInstrs.html
Modified: llvm/trunk/docs/CFEBuildInstrs.html
URL:
Author: baldrick
Date: Tue Feb 12 15:22:58 2008
New Revision: 47027
URL: http://llvm.org/viewvc/llvm-project?rev=47027view=rev
Log:
Add instructions for building Ada and Fortran.
Adjust mentions of gcc4 to be 4.0/4.2 agnostic.
This file should probably be renamed tor
GCCFEBuildInstrs.html...
Author: baldrick
Date: Tue Feb 12 15:40:21 2008
New Revision: 47031
URL: http://llvm.org/viewvc/llvm-project?rev=47031view=rev
Log:
Note that these instructions are for x86-32 linux
(the only platform on which the Ada compiler even
builds).
Modified:
llvm/trunk/docs/CFEBuildInstrs.html
Hi Dale,
Treat struct { long long: 29; }; as int sized and
aligned, rather than long long. ABI issue.
if you look at the DECL_SIZE of the bitfield, rather than
the type size, I think it gives you 29. If so, DECL_SIZE
should simplify things for you. In fact as far as I can
see you
Author: baldrick
Date: Mon Feb 11 14:58:28 2008
New Revision: 46967
URL: http://llvm.org/viewvc/llvm-project?rev=46967view=rev
Log:
Generalize the handling of call and return arguments,
in preparation for apint support. These changes are
intended to have no functional effect.
Modified:
Hi Dale,
Treat struct { long long: 29; }; as int sized and
aligned, rather than long long. ABI issue.
if you look at the DECL_SIZE of the bitfield, rather than
the type size, I think it gives you 29. If so, DECL_SIZE
should simplify things for you. In fact as far as I can
see you should
Author: baldrick
Date: Mon Feb 11 05:09:23 2008
New Revision: 46956
URL: http://llvm.org/viewvc/llvm-project?rev=46956view=rev
Log:
Add arbitrary integer support to getRegisterType and
getNumRegisters. This is needed for calling functions
with apint parameters or return values.
Modified:
the current LLVM implementation means that anyone using threading
needs
to not do bitfield accesses, since the compiler generated code could
cause trouble.
This is not handled by LLVM, this is handled by FE that is translating
source code into LLVM IR. Unless all front-ends enforce
Author: baldrick
Date: Mon Feb 11 04:37:04 2008
New Revision: 46954
URL: http://llvm.org/viewvc/llvm-project?rev=46954view=rev
Log:
Add a isBigEndian method to complement isLittleEndian.
Modified:
llvm/trunk/include/llvm/Target/TargetLowering.h
Author: baldrick
Date: Sun Feb 10 07:40:55 2008
New Revision: 46928
URL: http://llvm.org/viewvc/llvm-project?rev=46928view=rev
Log:
Add some Ada info and correct a few buglets.
Modified:
llvm/trunk/docs/ReleaseNotes.html
Modified: llvm/trunk/docs/ReleaseNotes.html
URL:
you forgot about attributes on the function return value.
I've lost the context for this, do you remember what this was about?
I fixed it for you already :)
D.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
maybe c380004 can be hyperlinked too?
There's not really much point: this is not an llvm-gcc problem.
I don't plan to open a PR for it, so there's nothing to link to.
Ciao,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
Hi Devang,
I can't help feeling that a bitfield load or store should touch the
minimum amount of bytes possible: only those that contain some part
of the bitfield. In some situations touching other bytes could be
fatal, for example if the type is overlaid on some memory mapped io
Hi Devang,
Use appropriate alignment while handling packed struct member.
the reason I asked for a testcase is that I thought all objects
created by the IR we generate (whether locals, globals or on the
heap) were supposed to be aligned at least as much as the gcc
alignment. If so, the fact
Hi Devang,
It is possible that I'm not solving the real problem here.
struct {
char a;
char b;
int c:8;
int d:20;
} S;
When this struct is packed and S is aligned at 4 byte, what alignment
should be specified on load instruction to load 'd' ?
since
Hi Devang,
Use appropriate alignment while handling packed struct member.
do you have a testcase for this?
Thanks,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Author: baldrick
Date: Mon Feb 4 12:07:02 2008
New Revision: 46713
URL: http://llvm.org/viewvc/llvm-project?rev=46713view=rev
Log:
Crashes LegalizeTypes with Do not know how to
expand the result of this operator! (node: ctlz).
Added:
llvm/trunk/test/CodeGen/Generic/2008-02-04-Ctlz.ll
Author: baldrick
Date: Mon Feb 4 12:05:42 2008
New Revision: 46712
URL: http://llvm.org/viewvc/llvm-project?rev=46712view=rev
Log:
Crashes LegalizeTypes with Do not know how to split
this operator's operand (node: extract_subvector).
Added:
On Monday 4 February 2008 22:50:23 Devang Patel wrote:
Please update associated comments also.
Sorry about that - done now.
Ciao,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Author: baldrick
Date: Mon Feb 4 18:06:31 2008
New Revision: 46728
URL: http://llvm.org/viewvc/llvm-project?rev=46728view=rev
Log:
Update comments.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified:
Author: baldrick
Date: Fri Feb 1 14:37:16 2008
New Revision: 46645
URL: http://llvm.org/viewvc/llvm-project?rev=46645view=rev
Log:
Don't drop function/call return attributes like 'nounwind'.
Added:
llvm/trunk/test/Transforms/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
Modified:
Hi Dale, maybe you could use IntrinsicInst::StripPointerCasts instead?
Didn't know about this, thanks. It recurses and I don't think that's
what I want in this case. I did, however, steal its looping code:)
Are you sure you don't want it to be recursive? I can take a global
variable,
Hi Dale, maybe you could use IntrinsicInst::StripPointerCasts
instead?
Didn't know about this, thanks. It recurses and I don't think that's
what I want in this case. I did, however, steal its looping code:)
Are you sure you don't want it to be recursive? I can take a global
Hi Dale, maybe you could use IntrinsicInst::StripPointerCasts instead?
Best wishes,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Author: baldrick
Date: Tue Jan 29 13:29:08 2008
New Revision: 46525
URL: http://llvm.org/viewvc/llvm-project?rev=46525view=rev
Log:
When expanding an operand, it's not the result value
type that matters but the operand type. This fixes
2008-01-08-IllegalCMP.ll which crashed with the new
legalize
Hi Evan, thanks for doing this.
+static bool isZeroSizedStructOrUnion(tree type) {
+ if (TREE_CODE(type) != RECORD_TYPE TREE_CODE(type) != UNION_TYPE)
You should let QUAL_UNION through here as well. And what about size-zero
arrays? Or for that matter, zero size anything?
+// Skip
Author: baldrick
Date: Mon Jan 28 04:35:11 2008
New Revision: 46451
URL: http://llvm.org/viewvc/llvm-project?rev=46451view=rev
Log:
Make this more likely to be passed byval.
Modified:
llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c
Modified:
Author: lattner
Date: Sun Jan 27 22:18:41 2008
New Revision: 46432
URL: http://llvm.org/viewvc/llvm-project?rev=46432view=rev
Log:
reduce duplicate -I flags passed to the compiler, cleaning up the VERBOSE
output. Patch contributed by Sam Bishop!
This breaks the build when the objects
Hi Tanya,
This test is failing for me. llvm-gcc-4.0, x86 darwin8.
it should be better now. It needed tweaking for a policy
change on byval+const/pure. Also, a patch had not been
backported from 4.2 to 4.0.
Ciao,
Duncan.
___
llvm-commits mailing
Author: baldrick
Date: Mon Jan 28 13:57:01 2008
New Revision: 46457
URL: http://llvm.org/viewvc/llvm-project?rev=46457view=rev
Log:
Backport the patch turning off readnone/readonly
when there is a byval parameter from 4.2.
Modified:
llvm-gcc-4.0/trunk/gcc/llvm-types.cpp
Modified:
How long should we continue to support 4.0? I thought 2.2 was the
last release for it?
Does 4.0 do anything better than 4.2? I'm all for dropping it like
a hot potato if not.
Ciao,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
Hi Evan,
This is probably safe (not completely clear), but why do you need to
do it at all?
Because they are skipped earlier when we did the type translation.
I see - this was orthogonal to the rest of your patch. I have a different
fix for this issue which I like better, but that's my
This breaks the build when the objects directory is different to the
source directory.
I'm very sorry about this. The attached patch will fix it.
Indeed it does, so I've applied it. Thanks for the quick fix!
Best wishes,
Duncan.
___
Author: baldrick
Date: Mon Jan 28 13:25:47 2008
New Revision: 46456
URL: http://llvm.org/viewvc/llvm-project?rev=46456view=rev
Log:
Pure/const functions with ByVal parameters cannot
be marked readonly either.
Modified:
llvm/trunk/test/CFrontend/2008-01-25-ByValReadNone.c
Modified:
Author: baldrick
Date: Mon Jan 28 14:57:24 2008
New Revision: 46460
URL: http://llvm.org/viewvc/llvm-project?rev=46460view=rev
Log:
Fix PR1942 differently, by having the caller
take care of making a copy of the aggregate
return value rather than the callee (the previous
fix). This is better
Author: baldrick
Date: Mon Jan 28 11:38:30 2008
New Revision: 46453
URL: http://llvm.org/viewvc/llvm-project?rev=46453view=rev
Log:
Unbreak builds with differing object and source
directories. Patch by Sam Bishop.
Modified:
llvm/trunk/Makefile.rules
Modified: llvm/trunk/Makefile.rules
URL:
Author: baldrick
Date: Mon Jan 28 23:57:23 2008
New Revision: 46492
URL: http://llvm.org/viewvc/llvm-project?rev=46492view=rev
Log:
After recent changes we fail to optimize this test
sufficiently to have it pass. I'm removing it from
the testsuite and adding it to PR452 instead.
Removed:
Author: baldrick
Date: Tue Jan 29 00:23:44 2008
New Revision: 46495
URL: http://llvm.org/viewvc/llvm-project?rev=46495view=rev
Log:
Use getPreferredAlignmentLog or getPreferredAlignment
to get the alignment of global variables, rather than
using hand-made versions.
Modified:
Author: baldrick
Date: Tue Jan 29 00:04:54 2008
New Revision: 46493
URL: http://llvm.org/viewvc/llvm-project?rev=46493view=rev
Log:
This would be better done as an executable test.
Removed:
llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp
Removed:
This fails with 4.0 on darwin x86.
I've removed it. With recent changes needed for
byval correctness, it became too hard for the optimizers.
I've added it to PR452 instead.
Ciao,
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
Author: baldrick
Date: Tue Jan 29 00:46:44 2008
New Revision: 46498
URL: http://llvm.org/viewvc/llvm-project?rev=46498view=rev
Log:
Test for PR1942.
Added:
test-suite/trunk/SingleSource/Regression/C++/2008-01-29-ParamAliasesReturn.cpp
Added:
Hi Evan,
Can you get me a test case? I need to see what gcc is doing. Thanks,
Sure. Zero sized fields in structs may not be very useful, but it is
still legal to use them, in particular you can take their address,
like this:
struct Z {};
struct Y {
int i;
struct Z z;
};
void
I'm running into this problem as well -- it crashing while compiling
gcov.c on my PPC G4.
While r46381 seems the obvious culprit, to tell the truth I didn't check
whether reverting this patch fixes the problem - so I could be wrong.
Ciao,
Duncan.
Author: baldrick
Date: Sun Jan 27 12:11:13 2008
New Revision: 46415
URL: http://llvm.org/viewvc/llvm-project?rev=46415view=rev
Log:
Do not mark a function readnone or readonly if it has
a byval parameter.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Modified:
No problem, thanks for pointing out that it needed to be done. It
would be nice if globalsmodref inferred that functions which only
store to their byval args are really readnone.
I guess you mean readonly, since readnone+byval doesn't really work.
D.
Create an explicit copy for byval parameters even
when inlining a readonly function.
Are you sure this is correct? There is a difference between 'const',
'pure' and readnone/readonly. Further, isn't it always safe to elide
the copy for readnone functions?
A readnone function could
Author: baldrick
Date: Sat Jan 26 06:33:01 2008
New Revision: 46399
URL: http://llvm.org/viewvc/llvm-project?rev=46399view=rev
Log:
Invert this test, because it is wrong if we allow
readonly functions to use byval parameters as local
storage (how much do we want this?).
Modified:
Add skeletal code to increase the alignment of loads and stores when
we can infer it. This will eventually help stuff, though it doesn't
do much right now because all fixed FI's have an alignment of 1.
By the way, I've always assumed that alignment 0 is not used by the
code generators, i.e.
Hi Devang, what is this test testing? A compiler crash?
It doesn't crash here without your fix.
+// RUN: %llvmgcc %s -S -o -
+
+// This struct is not 4 byte aligned becaues bit-field
+// type does not influence struct alignment.
+struct U { char a; short b; int c:25; char d; } u;
Ciao,
Author: baldrick
Date: Fri Jan 25 04:20:53 2008
New Revision: 46352
URL: http://llvm.org/viewvc/llvm-project?rev=46352view=rev
Log:
Add more assertions to catch accesses outside of
arrays. Also, as a convenience, don't barf, just
return false, if someone calls isTruncStoreLegal
or isLoadXLegal
PS: Does an alignment of 0 mean the ABI alignment or the preferred
alignment? I'm guessing that it means ABI for globals and
preferred for allocas.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
Author: baldrick
Date: Fri Jan 25 11:45:31 2008
New Revision: 46359
URL: http://llvm.org/viewvc/llvm-project?rev=46359view=rev
Log:
Fix PR1942. When returning an aggregate result,
create a temporary to hold the result, and copy
it out when returning.
Modified:
Author: baldrick
Date: Fri Jan 25 23:33:48 2008
New Revision: 46391
URL: http://llvm.org/viewvc/llvm-project?rev=46391view=rev
Log:
Correct spelling.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-abi.h
Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h
URL:
If a function takes a byval parameter, it can't be readnone, we
have to mark it readonly instead. This fixes
test/CFrontend/2008-01-25-ByValReadNone.c
Thanks for doing this!
Duncan.
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
Author: baldrick
Date: Sat Jan 26 00:03:12 2008
New Revision: 46392
URL: http://llvm.org/viewvc/llvm-project?rev=46392view=rev
Log:
Silence a warning.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL:
Author: baldrick
Date: Fri Jan 25 16:06:51 2008
New Revision: 46369
URL: http://llvm.org/viewvc/llvm-project?rev=46369view=rev
Log:
Do this more neatly.
Modified:
llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
URL:
Author: baldrick
Date: Fri Jan 25 11:36:44 2008
New Revision: 46357
URL: http://llvm.org/viewvc/llvm-project?rev=46357view=rev
Log:
Test for PR1942.
Added:
llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp
Added: llvm/trunk/test/C++Frontend/2008-01-25-ResultIsParam.cpp
URL:
Author: baldrick
Date: Sat Jan 26 00:41:49 2008
New Revision: 46393
URL: http://llvm.org/viewvc/llvm-project?rev=46393view=rev
Log:
Create an explicit copy for byval parameters even
when inlining a readonly function.
Added:
llvm/trunk/test/CFrontend/2008-01-26-ReadOnlyByVal.c
Modified:
Hi Devang, this patch causes:
llvm-types.cpp: In member function ‘bool
TypeConverter::DecodeStructFields(tree_node*, StructTypeConversionInfo)’:
llvm-types.cpp:1777: warning: comparison between signed and unsigned integer
expressions
Ciao,
Duncan.
PS: Does an alignment of 0 mean the ABI alignment or the preferred
alignment? I'm guessing that it means ABI for globals and
preferred for allocas.
In what context?
In any context :) Basically I'm asking what it means if you pass an
alignment of 0 for an alloca (or a global). For
Author: baldrick
Date: Fri Jan 25 11:36:35 2008
New Revision: 46356
URL: http://llvm.org/viewvc/llvm-project?rev=46356view=rev
Log:
Fix PR1942. When returning an aggregate result,
create a temporary to hold the result, and copy
it out when returning.
Modified:
Author: baldrick
Date: Fri Jan 25 23:27:18 2008
New Revision: 46390
URL: http://llvm.org/viewvc/llvm-project?rev=46390view=rev
Log:
Correct comment.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp
URL:
Hi Chris,
+// Add any uses of the old node to the worklist if they have a single
+// use. They may be dead after this node is deleted.
+for (unsigned i = 0, e = N-getNumOperands(); i != e; ++i)
+ AddToWorkList(N-getOperand(i).Val);
the comment says if they
Author: baldrick
Date: Wed Jan 23 14:39:46 2008
New Revision: 46280
URL: http://llvm.org/viewvc/llvm-project?rev=46280view=rev
Log:
The last pieces needed for loading arbitrary
precision integers. This won't actually work
(and most of the code is dead) unless the new
legalization machinery is
Hi Bill,
GCC barfs this to the .s file directly:
.objc_class_name_CrashTestPlugin=0
.globl .objc_class_name_CrashTestPlugin
it looks like you write this directly to a file
containing LLVM IR. I guess this is OK as long
as no-one is using the global in the IR (otherwise
the verifier
What about integer arrays?
This is an optimization, not a correctness issue. Can you give an
example that you mean?
According to the x86-64 ABI, arrays of integers that are not more
than 8 bytes long are passed in integer registers. Likewise for
structs. So it looks like a correctness
Okay, well we already get many other x86-64 issues wrong already, but
Evan is chipping away at it. How do you pass an array by value in C?
Example please,
I find the x86-64 ABI hard to interpret, but it seems to say that
aggregates are classified recursively, so it looks like a struct
Author: baldrick
Date: Mon Jan 21 02:39:31 2008
New Revision: 46205
URL: http://llvm.org/viewvc/llvm-project?rev=46205view=rev
Log:
Remove extra tokens at end of #ifndef directive.
Modified:
llvm-gcc-4.2/trunk/gcc/llvm-abi.h
Modified: llvm-gcc-4.2/trunk/gcc/llvm-abi.h
URL:
Author: baldrick
Date: Mon Jan 21 05:27:55 2008
New Revision: 46206
URL: http://llvm.org/viewvc/llvm-project?rev=46206view=rev
Log:
Be consistent with other attribute methods, and
check the callee also if it is known.
Modified:
llvm/trunk/lib/VMCore/Instructions.cpp
Modified:
Author: baldrick
Date: Mon Jan 21 05:28:49 2008
New Revision: 46207
URL: http://llvm.org/viewvc/llvm-project?rev=46207view=rev
Log:
Check that sret is only used on pointers to types
with a size, like byval.
Modified:
llvm/trunk/lib/VMCore/ParameterAttributes.cpp
Modified:
Author: baldrick
Date: Mon Jan 21 15:37:41 2008
New Revision: 46216
URL: http://llvm.org/viewvc/llvm-project?rev=46216view=rev
Log:
It turns out that in C++ it is legal to declare functions
that return an opaque type by value, as long as you don't
call it or provide a body (you can take the
1 - 100 of 732 matches
Mail list logo