You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(31) |
2
(27) |
|
3
(25) |
4
(21) |
5
(21) |
6
(21) |
7
(32) |
8
(23) |
9
(15) |
|
10
(12) |
11
(9) |
12
(10) |
13
(10) |
14
(9) |
15
(7) |
16
(20) |
|
17
(14) |
18
(71) |
19
(67) |
20
(50) |
21
(25) |
22
(15) |
23
(37) |
|
24
(25) |
25
(41) |
26
(34) |
27
(57) |
28
(20) |
29
(30) |
30
(13) |
|
31
(18) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2005-07-05 23:54:23
|
Author: sewardj
Date: 2005-07-06 00:54:16 +0100 (Wed, 06 Jul 2005)
New Revision: 1261
Log:
Keep older versions of gcc (3.0.4) happy.
Modified:
trunk/priv/host-ppc32/isel.c
Modified: trunk/priv/host-ppc32/isel.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/host-ppc32/isel.c 2005-07-04 12:16:56 UTC (rev 1260)
+++ trunk/priv/host-ppc32/isel.c 2005-07-05 23:54:16 UTC (rev 1261)
@@ -2608,6 +2608,7 @@
=20
/* --------- LITERAL --------- */
if (e->tag =3D=3D Iex_Const) {
+ HReg r_srcHi, r_srcLo;
union { UInt u32x2[2]; ULong u64; Double f64; } u;
vassert(sizeof(u) =3D=3D 8);
vassert(sizeof(u.u64) =3D=3D 8);
@@ -2623,8 +2624,8 @@
else
vpanic("iselDblExpr(ppc32): const");
=20
- HReg r_srcHi =3D newVRegI(env);
- HReg r_srcLo =3D newVRegI(env);
+ r_srcHi =3D newVRegI(env);
+ r_srcLo =3D newVRegI(env);
addInstr(env, mk_iMOVds_RRI(env, r_srcHi, PPC32RI_Imm(u.u32x2[1]))=
);
addInstr(env, mk_iMOVds_RRI(env, r_srcLo, PPC32RI_Imm(u.u32x2[0]))=
);
return mk_LoadRRtoFPR( env, r_srcHi, r_srcLo );
|
|
From: <sv...@va...> - 2005-07-05 23:34:46
|
Author: tom
Date: 2005-07-06 00:34:44 +0100 (Wed, 06 Jul 2005)
New Revision: 4111
Log:
Enable some more amd64 syscalls.
Modified:
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-07-05 23:25:17 U=
TC (rev 4110)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-07-05 23:34:44 U=
TC (rev 4111)
@@ -1211,9 +1211,9 @@
=20
GENX_(__NR_chmod, sys_chmod), // 90=20
GENX_(__NR_fchmod, sys_fchmod), // 91=20
-//zz GENX_(__NR_chown, sys_chown), // 92=20
-//zz GENX_(__NR_fchown, sys_fchown), // 93=20
- // (__NR_lchown, sys_lchown), // 94=20
+ GENX_(__NR_chown, sys_chown), // 92=20
+ GENX_(__NR_fchown, sys_fchown), // 93=20
+ GENX_(__NR_lchown, sys_lchown), // 94=20
=20
GENX_(__NR_umask, sys_umask), // 95=20
GENXY(__NR_gettimeofday, sys_gettimeofday), // 96=20
@@ -1348,12 +1348,12 @@
// (__NR_sched_getaffinity, sys_sched_getaffinity), // 204=20
=20
// (__NR_set_thread_area, sys_ni_syscall), // 205=20
-//zz LINX_(__NR_io_setup, sys_io_setup), // 206=20
-//zz LINX_(__NR_io_destroy, sys_io_destroy), // 207=20
-//zz LINXY(__NR_io_getevents, sys_io_getevents), // 208=20
-//zz LINX_(__NR_io_submit, sys_io_submit), // 209=20
+ LINX_(__NR_io_setup, sys_io_setup), // 206=20
+ LINX_(__NR_io_destroy, sys_io_destroy), // 207=20
+ LINXY(__NR_io_getevents, sys_io_getevents), // 208=20
+ LINX_(__NR_io_submit, sys_io_submit), // 209=20
=20
-//zz LINXY(__NR_io_cancel, sys_io_cancel), // 210=20
+ LINXY(__NR_io_cancel, sys_io_cancel), // 210=20
// (__NR_get_thread_area, sys_ni_syscall), // 211=20
// (__NR_lookup_dcookie, sys_lookup_dcookie), // 212=20
LINXY(__NR_epoll_create, sys_epoll_create), // 213=20
|
|
From: <sv...@va...> - 2005-07-05 23:26:07
|
Author: tom
Date: 2005-07-06 00:25:17 +0100 (Wed, 06 Jul 2005)
New Revision: 4110
Log:
Sort out the mess that is pread64/pwrite64 properly. All three platforms
that we currently support use the same handlers in the kernel without any
platform specific wrappers.
The final argument is a 64 bit argument however, which means that it
requires two registers on x86 and ppc32 and only one on amd64. The
reason it works in the kernel is that x86 and ppc32 calling conventions
inside the kernel work out correctly and the values get joined together.
For our purposes we make x86 and ppc32 use the generic veneer with
five arguments and amd64 use a platform specific one with four...
Modified:
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-07-05 18:24:22 U=
TC (rev 4109)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-07-05 23:25:17 U=
TC (rev 4110)
@@ -582,6 +582,8 @@
DECL_TEMPLATE(amd64_linux, sys_shmdt);
DECL_TEMPLATE(amd64_linux, sys_shmctl);
DECL_TEMPLATE(amd64_linux, sys_arch_prctl);
+DECL_TEMPLATE(amd64_linux, sys_pread64);
+DECL_TEMPLATE(amd64_linux, sys_pwrite64);
=20
=20
PRE(sys_clone)
@@ -1049,6 +1051,35 @@
ML_(generic_POST_sys_shmctl)(tid, RES,ARG1,ARG2,ARG3);
}
=20
+PRE(sys_pread64)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_pread64 ( %d, %p, %llu, %lld )",
+ ARG1, ARG2, (ULong)ARG3, ARG4);
+ PRE_REG_READ4(ssize_t, "pread64",
+ unsigned int, fd, char *, buf,
+ vki_size_t, count, vki_loff_t, offset);
+ PRE_MEM_WRITE( "pread64(buf)", ARG2, ARG3 );
+}
+POST(sys_pread64)
+{
+ vg_assert(SUCCESS);
+ if (RES > 0) {
+ POST_MEM_WRITE( ARG2, RES );
+ }
+}
+
+PRE(sys_pwrite64)
+{
+ *flags |=3D SfMayBlock;
+ PRINT("sys_pwrite64 ( %d, %p, %llu, %lld )",
+ ARG1, ARG2, (ULong)ARG3, ARG4);
+ PRE_REG_READ4(ssize_t, "pwrite64",
+ unsigned int, fd, const char *, buf,
+ vki_size_t, count, vki_loff_t, offset);
+ PRE_MEM_READ( "pwrite64(buf)", ARG2, ARG3 );
+}
+
#undef PRE
#undef POST
=20
@@ -1090,8 +1121,8 @@
=20
PLAX_(__NR_rt_sigreturn, sys_rt_sigreturn), // 15=20
GENXY(__NR_ioctl, sys_ioctl), // 16=20
- GENXY(__NR_pread64, sys_pread64), // 17=20
- // (__NR_pwrite64, sys_pwrite64), // 18=20
+ PLAXY(__NR_pread64, sys_pread64), // 17=20
+ PLAX_(__NR_pwrite64, sys_pwrite64), // 18=20
GENXY(__NR_readv, sys_readv), // 19=20
=20
GENX_(__NR_writev, sys_writev), // 20=20
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-05 18:24:22 UTC (=
rev 4109)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-05 23:25:17 UTC (=
rev 4110)
@@ -2102,8 +2102,11 @@
PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_gid_t,=
egid);
}
=20
-// XXX: only for 32-bit archs
-#if defined(VGP_x86_linux)
+// The actual kernel definition of this routine takes a
+// single 64 bit offset argument. This version is for 32 bit
+// platforms only and treats the offset as two values - the
+// kernel relies on stack based argument passing conventions
+// to merge the two together.
PRE(sys_pwrite64)
{
*flags |=3D SfMayBlock;
@@ -2114,7 +2117,6 @@
vki_u32, offset_low32, vki_u32, offset_high32);
PRE_MEM_READ( "pwrite64(buf)", ARG2, ARG3 );
}
-#endif
=20
PRE(sys_sync)
{
@@ -2154,9 +2156,11 @@
PRE_REG_READ1(long, "getsid", vki_pid_t, pid);
}
=20
-// XXX: only for 32-bit archs
-// XXX even more: this in fact gets used by amd64-linux. Someone
-// should look into this properly.
+// The actual kernel definition of this routine takes a
+// single 64 bit offset argument. This version is for 32 bit
+// platforms only and treats the offset as two values - the
+// kernel relies on stack based argument passing conventions
+// to merge the two together.
PRE(sys_pread64)
{
*flags |=3D SfMayBlock;
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-07-05 18:24:22 U=
TC (rev 4109)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2005-07-05 23:25:17 U=
TC (rev 4110)
@@ -2132,8 +2132,8 @@
//.. GENXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 177
//.. GENX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 178
//..=20
-//.. GENXY(__NR_pread64, sys_pread64), // 179
-//.. GENX_(__NR_pwrite64, sys_pwrite64), // 180
+ GENXY(__NR_pread64, sys_pread64), // 179
+ GENX_(__NR_pwrite64, sys_pwrite64), // 180
GENX_(__NR_chown, sys_chown16), // 181
//.. GENXY(__NR_getcwd, sys_getcwd), // 182
//.. GENXY(__NR_capget, sys_capget), // 183
|
|
From: Dirk M. <dm...@gm...> - 2005-07-05 21:22:49
|
On Tuesday 05 July 2005 22:30, Nicholas Nethercote wrote: > Sounds fine to me. I believe Julian is planning to do a 3.0 release soon, > and so it seems unlikely that a 2.4.1 release will occur I'd be willing to release-master a 2.4.1 if thats the only reason it won't get done.. > , so I wouldn't > bother with the backport. (Sorry I didn't point this out when you removed > valgrind.vs from 2.4, I thought you did it with the 3.0 repository.) I don't have access to 3.0 right now. May I sign up for an account? Thanks, Dirk |
|
From: Nicholas N. <nj...@cs...> - 2005-07-05 20:30:20
|
On Tue, 5 Jul 2005, Dirk Mueller wrote: > Anyway, thanks for committing. the version-script-removal commit is > missing on the 3.0 tree of valgrind, as well as the > disable-pie-by-default change should be backported to 2.4. Can I do > that? Sounds fine to me. I believe Julian is planning to do a 3.0 release soon, and so it seems unlikely that a 2.4.1 release will occur, so I wouldn't bother with the backport. (Sorry I didn't point this out when you removed valgrind.vs from 2.4, I thought you did it with the 3.0 repository.) N |
|
From: Dirk M. <dm...@gm...> - 2005-07-05 20:25:17
|
On Sunday 03 July 2005 12:43, Julian Seward wrote: > I just find it bizarre that on a stable branch, they changed the > externally visible behaviour of the compiler. You would think they > would only do bug fixes in the 4.0.0 -> 4.0.1 transition. Bug fixes sometimes also involve compliance fixes ;-) Anyway, thanks for committing. the version-script-removal commit is missing on the 3.0 tree of valgrind, as well as the disable-pie-by-default change should be backported to 2.4. Can I do that? Dirk |
|
From: <sv...@va...> - 2005-07-05 18:25:02
|
Author: cerion
Date: 2005-07-05 19:24:22 +0100 (Tue, 05 Jul 2005)
New Revision: 4109
Log:
set default fpu, altivec control words in dispatch-ppc.S (both zero)
Modified:
trunk/coregrind/m_dispatch/dispatch-ppc32.S
Modified: trunk/coregrind/m_dispatch/dispatch-ppc32.S
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_dispatch/dispatch-ppc32.S 2005-07-05 13:44:21 UTC (=
rev 4108)
+++ trunk/coregrind/m_dispatch/dispatch-ppc32.S 2005-07-05 18:24:22 UTC (=
rev 4109)
@@ -84,15 +84,20 @@
/* fetch %CIA into r30 */
lwz 30,OFFSET_ppc32_CIA(31)
=20
+ /* set host FPU control word to the default mode expected=20
+ by VEX-generated code. See comments in libvex.h for
+ more info. */
+ fsub 3,3,3 /* generate zero */
+ mtfsf 0xFF,3
+
+ /* set host AltiVec control word to the default mode expected=20
+ by VEX-generated code. */
+ vsubuwm 3,3,3 /* generate zero */
+ mtvscr 3
+
/* make a stack frame for the code we are calling */
stwu 1,-16(1)
=20
-/* CAB TODO:
- Store any other regs?
- Set any other regs to known state?
- - FPU, XER, CR
-*/
-
/* fall into main loop */
=20
/* Live regs:
|
|
From: Julian S. <js...@ac...> - 2005-07-05 17:39:26
|
> > That's certainly true for the 2.X line, but vex and the 3.X memcheck are > > .. well, at least marginally more clever about this kind of thing. > > The full problem is I think that INC preserves the carry flag, so > that is propagate through the INC unchanged. The ADD left the carry > flag undefined so the flags after the INC are undefined and that > makes the CMOV appear to produce an undefined result even though > it only looked at the Z, O and S flags. Yeh, but the ir optimiser may be able to knock out some of those bogus dependencies. That's why I want to see the post-optimisation IR. J |
|
From: Tom H. <to...@co...> - 2005-07-05 17:31:11
|
In message <200...@ac...>
Julian Seward <js...@ac...> wrote:
> > The problem is that memcheck considers the add to make some of the
> > condition flags undefined because the upper half of one of the
> > arguments was undefined. That then causes some of the condition flags
> > coming out of the inc to be undefined which makes the cmov result
> > undefined and so on...
>
> That's certainly true for the 2.X line, but vex and the 3.X memcheck are
> .. well, at least marginally more clever about this kind of thing.
The full problem is I think that INC preserves the carry flag, so
that is propagate through the INC unchanged. The ADD left the carry
flag undefined so the flags after the INC are undefined and that
makes the CMOV appear to produce an undefined result even though
it only looked at the Z, O and S flags.
> There is some possibility that, going downhill with a following wind,
> etc, it could be fixed. For starters, can you get me the post-
> optimisation pre-instrumentation IR resulting from the code fragment
> containing the cmovle? That is: run with --tool=none (really)
> --trace-flags=10001000 and probably play some games with
> --trace-notbelow=<large number> unless you enjoy wading through
> gigabytes of log files. I might be able to tell if the situation can
I'll send you my test program and the trace output.
Tom
--
Tom Hughes (to...@co...)
http://www.compton.nu/
|
|
From: Julian S. <js...@ac...> - 2005-07-05 17:00:49
|
Yeh, compiler writers are really a rotten bunch, huh :-? Thanks for chasing this around. > The problem is that memcheck considers the add to make some of the > condition flags undefined because the upper half of one of the > arguments was undefined. That then causes some of the condition flags > coming out of the inc to be undefined which makes the cmov result > undefined and so on... That's certainly true for the 2.X line, but vex and the 3.X memcheck are .. well, at least marginally more clever about this kind of thing. There is some possibility that, going downhill with a following wind, etc, it could be fixed. For starters, can you get me the post- optimisation pre-instrumentation IR resulting from the code fragment containing the cmovle? That is: run with --tool=none (really) --trace-flags=10001000 and probably play some games with --trace-notbelow=<large number> unless you enjoy wading through gigabytes of log files. I might be able to tell if the situation can be improved once I see the IR (the "after tree building" stuff). J |
|
From: Tom H. <to...@co...> - 2005-07-05 16:32:31
|
I've just spent all afternoon chasing a seemingly bogus warning coming from optimised code on an amd64 box and I've finally worked out what seems to be going on. The routine that is causing the problem has a routine whose second argument is a short containing some flags, so it comes in as %rsi and the compiler moves it to %r15 with: movswl %si, %r15d There is then a second short on the stack which has gets initialised to one of two values and then later the function adds 16 to that value if the bit 7 of the flags word that was passed in is set. For that operation the compiler generates this: mov 0x2bac(%rsp), %edx mov 0x2bac(%rsp), %eax add $0x10, %edx inc %r15b cmovle %edx, %eax mov %ax, 0x2bac(%rsp) So it loads 4 bytes from the stack into both %edx and %eax (knowing that the variable is only two, but that it is safe to load 4) then does the add of 16 to the value in %edx so the top half is still uninitialised. It then increments the low byte of r15 which still contains our flags because it knows that incrementing 128 will produce either zero or a negative value so that the LE condition in the next line will hold, but any value less than 128 will produce a positive result so the LE will not hold. Then it conditionally moves %edx to %eax so that the original value is replace by the updated value if and only if the top bit of %r15b was set and finally it saves the low word of %eax back to the stack. The problem is that memcheck considers the add to make some of the condition flags undefined because the upper half of one of the arguments was undefined. That then causes some of the condition flags coming out of the inc to be undefined which makes the cmov result undefined and so on... Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |
|
From: <sv...@va...> - 2005-07-05 13:44:56
|
Author: sewardj Date: 2005-07-05 14:44:21 +0100 (Tue, 05 Jul 2005) New Revision: 4108 Log: Disable PIE by default (sorry Tom), even on PIE-enabled platforms. It causes too much breakage. PIE builds are still possible, but you have to say --enable-pie to get them now. Modified: trunk/configure.in Modified: trunk/configure.in =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/configure.in 2005-07-05 00:59:08 UTC (rev 4107) +++ trunk/configure.in 2005-07-05 13:44:21 UTC (rev 4108) @@ -421,16 +421,7 @@ AC_CACHE_CHECK([for PIE support], vg_cv_pie, [AC_ARG_ENABLE(pie, [ --enable-pie platform supports= PIE linking], [vg_cv_pie=3D$enableval], - [safe_CFLAGS=3D$CFLAGS - CFLAGS=3D"$CFLAGS -fpie" - safe_LDFLAGS=3D$LDFLAGS - LDFLAGS=3D"$LDFLAGS -pie" - AC_TRY_LINK([int foo;], - [], - [vg_cv_pie=3Dyes], - [vg_cv_pie=3Dno]) - CFLAGS=3D$safe_CFLAGS - LDFLAGS=3D$safe_LDFLAGS])]) + [vg_cv_pie=3Dno] )]) if test "$vg_cv_pie" =3D yes; then AC_DEFINE([HAVE_PIE], 1, [can create position-independent executables]) PIE_AM_CFLAGS=3D"-fpie" |
|
From: Tom H. <th...@cy...> - 2005-07-05 03:01:02
|
Nightly build on audi ( i686, Red Hat 9 ) started at 2005-07-05 03:25:02 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 178 tests, 7 stderr failures, 1 stdout failure ================= memcheck/tests/sigaltstack (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) none/tests/pth_cancel1 (stdout) none/tests/pth_cancel1 (stderr) none/tests/pth_cancel2 (stderr) none/tests/x86/int (stderr) |
|
From: <js...@ac...> - 2005-07-05 02:40:27
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-07-05 03:30:00 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 176 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <to...@co...> - 2005-07-05 02:35:48
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-07-05 03:30:03 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 179 tests, 6 stderr failures, 1 stdout failure ================= memcheck/tests/leak-tree (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-07-05 02:21:43
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-07-05 03:10:06 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 158 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/brk (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) none/tests/yield (stdout) |
|
From: Tom H. <th...@cy...> - 2005-07-05 02:20:43
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-07-05 03:15:03 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 177 tests, 13 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <th...@cy...> - 2005-07-05 02:16:29
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-07-05 03:05:05 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 158 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/brk (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) |
|
From: Tom H. <th...@cy...> - 2005-07-05 02:05:27
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-07-05 03:00:03 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 158 tests, 9 stderr failures, 1 stdout failure ================= memcheck/tests/brk (stderr) memcheck/tests/sigaltstack (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/selfrun (stdout) none/tests/selfrun (stderr) |
|
From: <sv...@va...> - 2005-07-05 00:59:15
|
Author: sewardj Date: 2005-07-05 01:59:08 +0100 (Tue, 05 Jul 2005) New Revision: 4107 Log: Fix quoting some more. Shell script sucks. Modified: trunk/auxprogs/gsl16test Modified: trunk/auxprogs/gsl16test =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/auxprogs/gsl16test 2005-07-05 00:00:40 UTC (rev 4106) +++ trunk/auxprogs/gsl16test 2005-07-05 00:59:08 UTC (rev 4107) @@ -92,7 +92,7 @@ =20 echo -n " Collecting valgrinded results " rm -f out-V -(cd gsl-1.6 && for f in $ALL_TESTS ; do $GSL_VV -v --trace-children=3Dye= s \"$GSL_VFLAGS\" ./$f ; done) &> out-V +(cd gsl-1.6 && for f in $ALL_TESTS ; do $GSL_VV -v --trace-children=3Dye= s "$GSL_VFLAGS" ./$f ; done) &> out-V echo " ... done" =20 echo -n " Native fails: " && (grep FAIL: out-REF | wc -l) |
|
From: <sv...@va...> - 2005-07-05 00:00:43
|
Author: sewardj
Date: 2005-07-05 01:00:40 +0100 (Tue, 05 Jul 2005)
New Revision: 4106
Log:
Fix quoting a bit.
Modified:
trunk/auxprogs/gsl16test
Modified: trunk/auxprogs/gsl16test
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/auxprogs/gsl16test 2005-07-04 23:54:41 UTC (rev 4105)
+++ trunk/auxprogs/gsl16test 2005-07-05 00:00:40 UTC (rev 4106)
@@ -80,7 +80,7 @@
"rm -rf gsl-1.6 && tar xzf $GSL_FILE" && \
\
runcmd "Configuring " \
- "(cd gsl-1.6 && CC=3D$GSL_CC CFLAGS=3D$GSL_CFLAGS ./configure)" &=
& \
+ "(cd gsl-1.6 && CC=3D$GSL_CC CFLAGS=3D\"$GSL_CFLAGS\" ./configure=
)" && \
\
runcmd "Building " \
"(cd gsl-1.6 && make && make -k check)"
@@ -92,7 +92,7 @@
=20
echo -n " Collecting valgrinded results "
rm -f out-V
-(cd gsl-1.6 && for f in $ALL_TESTS ; do $GSL_VV -v --trace-children=3Dye=
s $GSL_VFLAGS ./$f ; done) &> out-V
+(cd gsl-1.6 && for f in $ALL_TESTS ; do $GSL_VV -v --trace-children=3Dye=
s \"$GSL_VFLAGS\" ./$f ; done) &> out-V
echo " ... done"
=20
echo -n " Native fails: " && (grep FAIL: out-REF | wc -l)
|