Watch, Follow, &
Connect with Us

Please visit our new home
community.embarcadero.com.


Welcome, Guest
Guest Settings
Help

Thread: XE6 compiler improvements!



Permlink Replies: 69 - Last Post: Jun 19, 2014 1:39 PM Last Post By: Leif Uneus
Janez Atmapuri ...

Posts: 240
Registered: 2/8/00
XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 6, 2014 3:45 AM
Hello,

It was a long time since I was so pleasantly surprised by the Delphi
compiler team. Yeah, well you could say it is advertisement, but what is
not? Either one way or the other:

http://www.dewresearch.com/news/232-rad-studio-xe6-lo-and-behold-

Kind Regards!
Atmapuri
www.dewresearch.com
wenjie zhou

Posts: 417
Registered: 6/28/02
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 6, 2014 6:29 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
That's really a good news.
David Novo

Posts: 37
Registered: 8/5/07
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 6, 2014 8:48 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Hello,

Was there a significant difference in the generated ASM code?

Janez Atmapuri Makovsek wrote:
Hello,

It was a long time since I was so pleasantly surprised by the Delphi
compiler team.
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 6, 2014 11:40 AM   in response to: David Novo in response to: David Novo
Was there a significant difference in the generated ASM code?

Yes, of course. Major difference in generated asm for both 32bit and 64bit.
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 7, 2014 2:43 AM   in response to: David Novo in response to: David Novo
Hi David,

Here is a short list of improvements visible from asm:

1.) The loop counter is now a register variable. Before it was stored in
memory.
2.) Even processing of simple dynamic arrays is now faster. 64bit code for
my test for-loop shows cca 2x reduction of instructions accessing memory
(uses more registers) and code runs nearly twice as fast.
3.) 32bit compiler for-loop traversing dynamic arrays also runs 2x faster in
my case at least. Instruction count down by 20%.

So, it is not only inlining that was improved. Code generation of XE6 is
very much different from XE5.
But of course there is plenty of room to do much better that this also <g>

Atmapuri
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 7, 2014 2:14 PM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Have to correct myself on this:

1.) All performance improvements I noticed were due to inlining being fixed
2.) 32bit compiler is indeed producing somewhat slower code. (30%)
3.) 64bit compiler has no change in the speed of generated code.

"Janez Atmapuri Makovsek" wrote in message
news:672744 at forums dot embarcadero dot com...

Hi David,

Here is a short list of improvements visible from asm:

1.) The loop counter is now a register variable. Before it was stored in
memory.
2.) Even processing of simple dynamic arrays is now faster. 64bit code for
my test for-loop shows cca 2x reduction of instructions accessing memory
(uses more registers) and code runs nearly twice as fast.
3.) 32bit compiler for-loop traversing dynamic arrays also runs 2x faster in
my case at least. Instruction count down by 20%.

So, it is not only inlining that was improved. Code generation of XE6 is
very much different from XE5.
But of course there is plenty of room to do much better that this also <g>

Atmapuri

wenjie zhou

Posts: 417
Registered: 6/28/02
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 7, 2014 6:55 PM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Janez Atmapuri Makovsek wrote:
Have to correct myself on this:
...
2.) 32bit compiler is indeed producing somewhat slower code. (30%)
...
Atmapuri

Do you know what lead 32bit app slower?

Edited by: wenjie zhou on May 7, 2014 6:55 PM
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements! [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 7, 2014 11:19 PM   in response to: wenjie zhou in response to: wenjie zhou
Do you know what lead 32bit app slower?

Cant really say. Both 32bit and 64bit have a lot different code generation
in XE6. Both down the same line of increasing register usage and reducing
memory access count (depending on the function, I have seen 50% increase in
register usage). Some instructions were replaced. Instruction count was also
reduced in some places. (let say 10% maybe).

Anyhow, the final result is that 64bit is about equally fast and 32bit is in
some cases slower. Sometimes by 30%.

The approach to increase register usage should lead to higher speed, but
only when the instruction count is reduced to the point that memory access
would become the bottleneck. Delphi is still far from that point.

I think I saw this compiler behavior once before already. (more than 10
years ago). It was then rolled back in the next version, because the
performance was not better. But don’t take my word for it.

I enjoy the inlining improvements a lot. Related code is really 4-6x faster.
This is a major thing.

The next major milestone might be inlining of assembler functions. At least
from the point of work required it would yield the biggest noticeable
benefit I think.

Atmapuri
wenjie zhou

Posts: 417
Registered: 6/28/02
Re: XE6 compiler improvements! [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 12:21 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
However, their endeavors in this direction is worth affirmation. But the result is not too ideal.
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements! [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 9:50 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Janez,

| Anyhow, the final result is that 64bit is about equally fast and
| 32bit is in some cases slower. Sometimes by 30%.

OUCH!!!

--

Q

05/09/2014 09:49:42

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Clement Doss

Posts: 126
Registered: 9/19/00
Re: XE6 compiler improvements! [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 2:47 PM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Hi,


Anyhow, the final result is that 64bit is about equally fast and 32bit is in
some cases slower. Sometimes by 30%.

This is not what I'm experiencing. My application uses a lot of 1D/ 2D Variant Array, For-Loops, move, etc.
I don't use a lot of inlining myself, but the RTL does. So XE6 should benefit from it.

My application is definitely snappier in XE6 than XE5. But there's no heavy floating point usage.

I voted the QC for resolving the stack juggling and whatever other features might get XE6 32bit compilation slower.
Seems odd that this passed the QPS process.

Native code should be faster in ALL fronts!

Clément
Joseph Mitzen

Posts: 359
Registered: 6/9/02
Re: XE6 compiler improvements! [Edit]
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 19, 2014 11:07 PM   in response to: Clement Doss in response to: Clement Doss
Clement Doss wrote:
Seems odd that this passed the QPS process.

To be fair they said they were going to address QPS. They never said whether that would be positively or negatively. ;-)

But seriously, as I said before QPS aren't features; they're the results of processes. Unless you address the processes you don't resolve the QPS issues, you merely treat the symptom. A large number of outstanding bugs will return unless one addresses what processes created them, kept them from being found in testing, and left them unresolved once detected.

It's clear from this issue that either there is performance regression testing and it simply wasn't applied after this change and this was permitted or there is no performance regression testing. This is obviously a process flaw that could explain a non-trivial percentage of QPS problems. Bug triage is nice, but without resolving matters like these it'll only be required again in the future and robs the momentum they appear to wish due to switching to a 6-month release cycle.

Native code should be faster in ALL fronts!

Not really. JIT can optimize for the specific hardware and the current performance characteristics of the running code unlike pre-compiled software.
Asbjørn Heid

Posts: 267
Registered: 11/12/12
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 12:26 AM   in response to: wenjie zhou in response to: wenjie zhou
wenjie zhou wrote:
Janez Atmapuri Makovsek wrote:
2.) 32bit compiler is indeed producing somewhat slower code. (30%)

Do you know what lead 32bit app slower?

Eric Grange mentioned[1] that the compiler now performs some stack juggling using FPU+fwait instead of using integer instructions. That could be part of the reason.

[1]: http://www.delphitools.info/2014/05/07/a-look-at-improved-inlining-in-delphi-xe6/2/

- Asbjørn
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 2:05 AM   in response to: wenjie zhou in response to: wenjie zhou
wenjie zhou wrote:
Janez Atmapuri Makovsek wrote:
Have to correct myself on this:
...
2.) 32bit compiler is indeed producing somewhat slower code. (30%)
...
Atmapuri

Do you know what lead 32bit app slower?

I just ran a comparison between XE5 and XE6 with the SciMark2 test here:
https://code.google.com/p/scimark-delphi/

XE6 Win32 Results:

Mininum running time = 2,00 seconds
Composite Score MFlops:   632,06
FFT             Mflops:   297,35    (N=1024)
SOR             Mflops:   895,01    (100 x 100)
MonteCarlo:     Mflops:   184,05
Sparse matmult  Mflops:   360,58    (N=1000, nz=5000)
LU              Mflops:  1423,33    (M=100, N=100)


XE5 Win32 Results:
Mininum running time = 2,00 seconds
Composite Score MFlops:   859,98
FFT             Mflops:   390,91    (N=1024)
SOR             Mflops:  1193,53    (100 x 100)
MonteCarlo:     Mflops:   198,91
Sparse matmult  Mflops:   538,50    (N=1000, nz=5000)
LU              Mflops:  1978,03    (M=100, N=100)
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 3:08 AM   in response to: Leif Uneus in response to: Leif Uneus
Dear Leif,

Yes, but 64bit fairs much better. Some functions are out of the box faster
by 2x than Win32 conuterparts. And with XE6 only the 32bit compiler took
some damage.
Atmapuri

"Leif Uneus" wrote in message news:673066 at forums dot embarcadero dot com...

wenjie zhou wrote:
Janez Atmapuri Makovsek wrote:
Have to correct myself on this:
...
2.) 32bit compiler is indeed producing somewhat slower code. (30%)
...
Atmapuri

Do you know what lead 32bit app slower?

I just ran a comparison between XE5 and XE6 with the SciMark2 test here:
https://code.google.com/p/scimark-delphi/

XE6 Win32 Results:

Mininum running time = 2,00 seconds
Composite Score MFlops:   632,06
FFT             Mflops:   297,35    (N=1024)
SOR             Mflops:   895,01    (100 x 100)
MonteCarlo:     Mflops:   184,05
Sparse matmult  Mflops:   360,58    (N=1000, nz=5000)
LU              Mflops:  1423,33    (M=100, N=100)


XE5 Win32 Results:
Mininum running time = 2,00 seconds
Composite Score MFlops:   859,98
FFT             Mflops:   390,91    (N=1024)
SOR             Mflops:  1193,53    (100 x 100)
MonteCarlo:     Mflops:   198,91
Sparse matmult  Mflops:   538,50    (N=1000, nz=5000)
LU              Mflops:  1978,03    (M=100, N=100)
Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 5:14 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Janez Atmapuri Makovsek wrote:
Dear Leif,

Yes, but 64bit fairs much better. Some functions are out of the box faster
by 2x than Win32 conuterparts. And with XE6 only the 32bit compiler took
some damage.
Atmapuri

Still, there is no justification for damaging 32bit compiler.

Dalija Prasnikar
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 9:54 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija,

| Still, there is no justification for damaging 32bit compiler.

I'm confused... Leif's comparison showed XE6 32-bit to be faster than
XE5 32-bit. (???) What am I missing?

--

Q

05/09/2014 09:52:10

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]
Stefan Glienke

Posts: 601
Registered: 1/5/09
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 12:22 PM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Leif's comparison showed XE6 32-bit to be faster than XE5 32-bit.

The opposite. Bigger numbers = better
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:03 PM   in response to: Stefan Glienke in response to: Stefan Glienke
Stefan,

| | Leif's comparison showed XE6 32-bit to be faster than XE5 32-bit.
|
| The opposite. Bigger numbers = better

Yeah, I figured that out later when I actually read the posts more
carefully.

--

Q

05/09/2014 13:02:10

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Rudy Velthuis (...


Posts: 7,591
Registered: 9/22/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 12, 2014 8:39 AM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:

Dalija,

Still, there is no justification for damaging 32bit compiler.

I'm confused... Leif's comparison showed XE6 32-bit to be faster than
XE5 32-bit. (???) What am I missing?

More operations per test means faster, so bigger numbers are faster. I
guess that is what you missed.

--
Rudy Velthuis (TeamB) http://www.teamb.com

"A man's ethical behavior should be based effectually on
sympathy, education, and social ties and needs; no religious
basis is necessary. Man would indeed be in a poor way if he had
to be restrained by fear of punishment and hope of reward after
death."
-- Albert Einstein
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 12, 2014 10:43 AM   in response to: Rudy Velthuis (... in response to: Rudy Velthuis (...
Rudy,

| More operations per test means faster, so bigger numbers are faster. I
| guess that is what you missed.

Yes it was. <g>

--

Q

05/12/2014 10:43:47

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 5:27 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Janez Atmapuri Makovsek wrote:
Dear Leif,

Yes, but 64bit fairs much better. Some functions are out of the box faster
by 2x than Win32 conuterparts. And with XE6 only the 32bit compiler took
some damage.
Atmapuri

There are no significant difference between XE5 and XE6 64 bit performance in the SciMark test.
Both have more or less the same performance as XE5 32 bit.

/Leif
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 6:22 AM   in response to: Leif Uneus in response to: Leif Uneus
Hi!

There are no significant difference between XE5 and XE6 64 bit performance
in the SciMark test.
Both have more or less the same performance as XE5 32 bit.

That is not according to SciMark or my own experience. I don’t know if this
is valid:

http://pastebin.com/N51M6gTy

But it shows that XE6 64bit is 4x faster for FFT than its 32bit counterpart.
Lu also 50%.

Atmapuri
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 6:55 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Janez Atmapuri Makovsek wrote:
Hi!

There are no significant difference between XE5 and XE6 64 bit performance
in the SciMark test.
Both have more or less the same performance as XE5 32 bit.

That is not according to SciMark or my own experience. I don’t know if this
is valid:

http://pastebin.com/N51M6gTy

But it shows that XE6 64bit is 4x faster for FFT than its 32bit counterpart.
Lu also 50%.

Atmapuri

Hi,

I was comparing XE5 vs XE6, you are comparing XE6 x32 vs XE6 x64.
And I found no significant difference between XE5 x32,XE5 x64 and XE6 x64 performance.
XE6 x32 is the bad guy here, compiler not optimal.
Janez Atmapuri ...

Posts: 55
Registered: 8/19/01
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 7:38 AM   in response to: Leif Uneus in response to: Leif Uneus
And I found no significant difference between XE5 x32,XE5 x64 and XE6 x64
performance.
XE6 x32 is the bad guy here, compiler not optimal.

We agree there, but my point is that not all is bad, because you still have
the 64bit compiler <g>
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 8, 2014 11:49 PM   in response to: Leif Uneus in response to: Leif Uneus
XE6 x32 is the bad guy here, compiler not optimal.

I think this should go into a service pack. This kind of "unnecessary slowing down" the application is not acceptable.

a) have you raise a proper QC? (x32 XE6 performance issue)
b) if yes I or you could raise a support call (we have still plenty open calls under our SA contract)

As well somebody should crosscheck the results of
http://webandlife.blogspot.com/2011/12/c-performance-vs-delphi-performance.html
if still that bad against .NET and JAVA than there should be raised an issue as well.
EMBT normally tries to advertise "native is faster than ...".

regards

Günther
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 12:52 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:
XE6 x32 is the bad guy here, compiler not optimal.

I think this should go into a service pack. This kind of "unnecessary slowing down" the application is not acceptable.

a) have you raise a proper QC? (x32 XE6 performance issue)
b) if yes I or you could raise a support call (we have still plenty open calls under our SA contract)

As well somebody should crosscheck the results of
http://webandlife.blogspot.com/2011/12/c-performance-vs-delphi-performance.html
if still that bad against .NET and JAVA than there should be raised an issue as well.
EMBT normally tries to advertise "native is faster than ...".
a) Not yet.
b) I doubt that a support call would respond to an improvement wish on the compiler. But I could be wrong.
Correct me if I'm wrong, but a support case would only benefit the one that asks, and that person have to validate the change at own risk.

Comparing with other languages to some extent boils down to how the tests are implemented.
The best use would be for a comparison between different Delphi/FPC versions. Same code.

/Leif
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:02 AM   in response to: Leif Uneus in response to: Leif Uneus
a) Not yet.

please raise it (and crosscheck again ... if you have older versions of Delphi that could help as well)

b) I doubt that a support call would respond to an improvement wish on the compiler. But I could be wrong.

this is not an improvement request but a clear regression problem (XE5->XE6 get's 30% slower). We do have similar code (nuclear simulation calculations and GIS matrix conversions). No way that this gets slower when we switch to XE6.

Correct me if I'm wrong, but a support case would only benefit the one that asks, and that person have to validate the change at own risk.

No - my goal is to push the fix of such a nasty problem into a service pack of XE6.

The best use would be for a comparison between different Delphi/FPC versions. Same code.

Yes - that would be a good point to start with. Perhaps the best that you drop me a private email (gschoch AT ... see company domain below). Than we can exchange some more details.

best regards

Günther
www.gs-soft.com
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 2:52 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:
a) Not yet.

Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652
Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 2:56 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif Uneus wrote:
Guenther Schoch wrote:
a) Not yet.

Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

Thanks.

Dalija Prasnikar
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 4:06 AM   in response to: Leif Uneus in response to: Leif Uneus
Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

I opened a "support case" for that QC. Hope we will get some feedback soon.

regards

Günther
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 4:27 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:
Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

I opened a "support case" for that QC. Hope we will get some feedback soon.
Excellent !

Keep us posted on any progress.

/Leif
Alexandre Machado

Posts: 1,683
Registered: 8/10/13
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 5:03 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif Uneus wrote:
Guenther Schoch wrote:
a) Not yet.

Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

I've already voted!
Eric Grange

Posts: 16
Registered: 3/2/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 5:58 AM   in response to: Leif Uneus in response to: Leif Uneus
Reported as QC124652 "x32 compiler regression for floating point expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

Thanks, added a link at the top of my blog post.

Eric
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 10:07 AM   in response to: Eric Grange in response to: Eric Grange
Eric,

| | Reported as QC124652 "x32 compiler regression for floating point
| | expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

| Thanks, added a link at the top of my blog post.

But, but, but,... it's CLOSED!

I cannot find the "duplicate."

--

Q

05/09/2014 10:06:40

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 11:31 AM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Eric,

| | Reported as QC124652 "x32 compiler regression for floating point
| | expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

| Thanks, added a link at the top of my blog post.

But, but, but,... it's CLOSED!

I cannot find the "duplicate."
Without a reference to the duplicate, this probably means that this was reported during beta test phase.
This also means that anyone involved cannot comment on this.

So, one conclusion would be that the product was shipped anyway, defect.
What a waste of my and others time not to report this in the new features description.

/Leif
Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 11:39 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif Uneus wrote:
Quentin Correll wrote:
Eric,

| | Reported as QC124652 "x32 compiler regression for floating point
| | expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

| Thanks, added a link at the top of my blog post.

But, but, but,... it's CLOSED!

I cannot find the "duplicate."
Without a reference to the duplicate, this probably means that this was reported during beta test phase.
This also means that anyone involved cannot comment on this.

So, one conclusion would be that the product was shipped anyway, defect.
What a waste of my and others time not to report this in the new features description.

IMO, all open bug reports that are shipped should be made public.

Dalija Prasnikar
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:04 PM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| Without a reference to the duplicate, this probably means that this
| was reported during beta test phase. This also means that anyone
| involved cannot comment on this

Yeah. <grumble>

--

Q

05/09/2014 13:03:40

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:07 PM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Leif,

| Without a reference to the duplicate, this probably means that this
| was reported during beta test phase. This also means that anyone
| involved cannot comment on this

Yeah. <grumble>

Report is now Open.

Dalija Prasnikar
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:38 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
Quentin Correll wrote:
Leif,

| Without a reference to the duplicate, this probably means that this
| was reported during beta test phase. This also means that anyone
| involved cannot comment on this

Yeah. <grumble>

Report is now Open.
Great !

Holding thumbs for a quick resolution.

/Leif
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 3:45 PM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija,

| Report is now Open.

Wonder WTF is going On??? <g>

I voted all 10 for it!!!

Thanks!!!

--

Q

05/09/2014 15:44:42

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 10, 2014 1:22 AM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Dalija,

| Report is now Open.

Wonder WTF is going On??? <g>

Probably just standard QC jumping over hoops...

Dalija Prasnikar
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 10, 2014 1:33 AM   in response to: Dalija Prasnikar in response to: Dalija Prasnikar
Dalija Prasnikar wrote:
Quentin Correll wrote:
Dalija,

| Report is now Open.

Wonder WTF is going On??? <g>

Probably just standard QC jumping over hoops...

I figured out what happened.
There is another QC report that links to this thread and Eric's blog about win32 compiler regression.
http://qc.embarcadero.com/wc/qcmain.aspx?d=124629

/Leif
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 10, 2014 10:03 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| I figured out what happened.
| There is another QC report that links to this thread and Eric's blog
| about win32 compiler regression.
| http://qc.embarcadero.com/wc/qcmain.aspx?d=124629

That would not be a valid reason to have closed your report. Someone
who didn't know what they were doing just screwed up. At least YOUR
report, with actual valid information, was re-opened.

--

Q

05/10/2014 10:00:57

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 16, 2014 12:43 AM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Leif,

| I figured out what happened.
| There is another QC report that links to this thread and Eric's blog
| about win32 compiler regression.
| http://qc.embarcadero.com/wc/qcmain.aspx?d=124629

That would not be a valid reason to have closed your report. Someone
who didn't know what they were doing just screwed up. At least YOUR
report, with actual valid information, was re-opened.

Closed for 2nd time as duplicate.
Interesting ...

/Leif
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 16, 2014 12:55 AM   in response to: Leif Uneus in response to: Leif Uneus
Closed for 2nd time as duplicate.
Interesting ...

yes ... very strange and as usual not helpful at all!
Duplicate / Duplicate of: None

But at least there is one indication by

Tomohiro Takahashi at 5/15/2014 3:32:01 PM -
I will check why this report was closed...

I still not understand why EMBT has not yet switched to the new JIRA based QC-System to make the workflow visible!

regards

Günther
Markus Humm

Posts: 4,982
Registered: 11/9/03
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 16, 2014 11:18 AM   in response to: Guest in response to: Guest
Am 16.05.2014 09:55, schrieb Guenther Schoch:
Closed for 2nd time as duplicate.
Interesting ...

yes ... very strange and as usual not helpful at all!
Duplicate / Duplicate of: None

But at least there is one indication by

Tomohiro Takahashi at 5/15/2014 3:32:01 PM -
I will check why this report was closed...

I still not understand why EMBT has not yet switched to the new JIRA based QC-System to make the workflow visible!

They even brought back QC in the RTM version of XE6! Yay! ;-)

@EMBT: may we please get some information about the proposed new
bugtracking system? Is somebody routinely working on finishing (in terms
of making it work and shareable of course ;-) ) it?

Greetings

Markus
Dalija Prasnikar

Posts: 2,281
Registered: 11/9/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 19, 2014 4:24 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:
Closed for 2nd time as duplicate.
Interesting ...

yes ... very strange and as usual not helpful at all!
Duplicate / Duplicate of: None

But at least there is one indication by

Tomohiro Takahashi at 5/15/2014 3:32:01 PM -
I will check why this report was closed...

And marked as Resolved 5/18/2014

Dalija Prasnikar
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 16, 2014 9:55 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| Closed for 2nd time as duplicate.
| Interesting ...

And annoying!

--

Q

05/16/2014 09:54:44

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 9:59 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| Reported as QC124652 "x32 compiler regression for floating point
| expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

Ah! I now see it.

Thanks!

--

Q

05/09/2014 09:58:32

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 10:04 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| Reported as QC124652 "x32 compiler regression for floating point
| expressions" http://qc.embarcadero.com/wc/qcmain.aspx?d=124652

And already "Closed!" As a "Duplicate."

--

Q

05/09/2014 10:03:06

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 9:57 AM   in response to: Guest in response to: Guest
Guenther,

| my goal is to push the fix of such a nasty problem

What "nasty problem?"

--

Q

05/09/2014 09:56:43

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Enquiring Mind

Posts: 87
Registered: 10/6/08
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 5:32 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:

As well somebody should crosscheck the results of
http://webandlife.blogspot.com/2011/12/c-performance-vs-delphi-performance.html
if still that bad against .NET and JAVA than there should be raised an issue as well.
EMBT normally tries to advertise "native is faster than ...".
The findings of the performance comparison in the interesting blog article you have drawn attention to seem to be at variance those in some of the articles that are listed in the article's reference list. For example, the 2011 paper in

http://www.ijcaonline.org/volume26/number1/pxc3874199.pdf

concludes that Delphi 2009 is on average 3 times as fast as C# and Delphi Prism code. Clearly there are many settings and parameters that affect the results, so it's difficult to explain the reasons for the contradictory findings. The author of the blog appears to be a convert from Delphi to C#.

The article also referenced by the blog,

http://www.codeproject.com/Articles/212856/Head-to-head-benchmark-Csharp-vs-NET

compares the execution speed of code compiled from C++ and C# and finds that native code compiled from C++ invariably outperforms code compiled from C#. However the author observes that the gap is narrowing and the other advantages of C# (ease of programming, security, etc.) probably outweigh the speed penalty for many types of application.

The in-depth article,

http://benchmarksgame.alioth.debian.org/

compares the performance of Ubuntu Linux code compiled from various languages. The languages compared do not for obvious reasons include Delphi, but do include FPC Pascal. Its performance approaches that of the best performing languages C and C++.

I certainly endorse your suggestion that Embarcadero should carefully investigate these performance findings, and if necessary set the record straight with regard to a realistic speed comparison of code compiled from Delphi with respect to other languages, including C++, C#, Java, and Objective-C.

EM
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 5:41 AM   in response to: Enquiring Mind in response to: Enquiring Mind
The article also referenced by the blog,
...

Thank you for that summary - I have to spend some time reading this interesting links

I certainly endorse your suggestion that Embarcadero should carefully investigate these performance findings,
and if necessary set the record straight with regard to a realistic speed comparison of code compiled from
Delphi with respect to other languages, including C++, C#, Java, and Objective-C.

If I understood Marco Cantu right than EMBT does want to include as well performance tests into their testing process to avoid sudden performance degradations during some compiler regression.
Exactly such tests should go there to ensure not only quality but quantify correctly against other development environments.

regards

Günther
Rudy Velthuis (...


Posts: 7,591
Registered: 9/22/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 12, 2014 8:40 AM   in response to: Guest in response to: Guest
Guenther Schoch wrote:

XE6 x32 is the bad guy here, compiler not optimal.

I think this should go into a service pack. This kind of "unnecessary
slowing down" the application is not acceptable.

Not sure if it is unnecessary, but it is indeed a bummer. I hope this
gets resolved anytime soon.

--
Rudy Velthuis (TeamB) http://www.teamb.com

"Either he's dead or my watch has stopped."
-- Groucho Marx
Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 19, 2014 1:39 PM   in response to: Guest in response to: Guest
Guenther Schoch wrote:
XE6 x32 is the bad guy here, compiler not optimal.

I think this should go into a service pack. This kind of "unnecessary slowing down" the application is not acceptable.

Issue http://qc.embarcadero.com/wc/qcmain.aspx?d=124652 resolved in XE6 Update 1.

Now I can consider doing some more work in XE6.
Let's see if the debugger is improved and does not crash every now and then.

/Leif
Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 9:55 AM   in response to: Leif Uneus in response to: Leif Uneus
Leif,

| XE6 x32 is the bad guy here, compiler not optimal.

I've looked at the thread and cannot find where that's identified.

Can you please explain?

Thanks.

--

Q

05/09/2014 09:54:49

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Quentin Correll


Posts: 2,390
Registered: 12/1/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:04 PM   in response to: Quentin Correll in response to: Quentin Correll
Quentin,

| | XE6 x32 is the bad guy here, compiler not optimal.
|
| I've looked at the thread and cannot find where that's identified.
|
| Can you please explain?

I re-read the thread and am now "in sync." <g>

--

Q

05/09/2014 13:04:26

1.19.1.372 [Q'sBrokenToolBar] [Running on TQ]

Leif Uneus

Posts: 33
Registered: 8/12/98
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 3:35 PM   in response to: Quentin Correll in response to: Quentin Correll
Quentin Correll wrote:
Quentin,

| | XE6 x32 is the bad guy here, compiler not optimal.
|
| I've looked at the thread and cannot find where that's identified.
|
| Can you please explain?

I re-read the thread and am now "in sync." <g>

:-)
Eric Grange

Posts: 16
Registered: 3/2/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:01 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
1.) The loop counter is now a register variable. Before it was stored in
memory.

Is that new? Or is it for 64bit?

The 32 bit compiler has been able to use register variables for loops
for a long time.

Eric
Janez Atmapuri ...

Posts: 240
Registered: 2/8/00
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:31 AM   in response to: Eric Grange in response to: Eric Grange
Hi!

Is that new? Or is it for 64bit?
The 32 bit compiler has been able to use register variables for loops
for a long time.

Cant say if it is new. The loops for which I have benchmarking implemented,
after the inlining has been fixed, are now using register and before it was
memory
for the loop counter.

Regards!
Atmapuri
Eric Grange

Posts: 16
Registered: 3/2/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 1:59 AM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Cant say if it is new. The loops for which I have benchmarking implemented,
after the inlining has been fixed, are now using register and before it was
memory for the loop counter.

Where those loops involving floating-point?

If so that may explain was they had the compiler stack juggles with the
FPU rather than the integer register, as it reduces integer pressure,
and offers more opportunity for allocating a loop register.

Then fixing the stack juggling could result in the fastest 32bit Delphi
yet (still far behind FPC though, as FPC knows about SSE2/AVX, etc.)

Eric
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 4:14 AM   in response to: Eric Grange in response to: Eric Grange
Then fixing the stack juggling could result in the fastest 32bit Delphi

I opened an "EMBT support call" for the QC http://qc.embarcadero.com/wc/qcmain.aspx?d=124652. Hope it helps.

yet (still far behind FPC though, as FPC knows about SSE2/AVX, etc.)

That is really an issue (long time known and never really pushed)
http://webandlife.blogspot.com/2011/12/c-performance-vs-delphi-performance.html

Small question:

- Is there a QC as well for that - something like "FPC much faster than Delphi" to vote for?
- What is the background that JAVA is much faster for such tests? (Test code better adapted to perform on JAVA?)

best regards

Günther
Erwin van den B...

Posts: 1
Registered: 11/20/00
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 4:39 AM   in response to: Guest in response to: Guest
- Is there a QC as well for that - something like "FPC much faster than Delphi" to vote for?

FPC is already faster then Delphi. No need to vote for that! :-)

Maybe we need a QC like: "Using FPC as compiler in Delphi IDE"
Eric Grange

Posts: 16
Registered: 3/2/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 6:05 AM   in response to: Guest in response to: Guest
- Is there a QC as well for that - something like "FPC much faster than Delphi" to vote for?

IMHO this isn't really a QC issue, it's too broad.

We could report the little issues case-by-case in QC, but assuming
they're willing to fix one, chances are they could break other things.

This is an issue where EMBT has to be pro-active rather than re-active,
and where they should be gathering benchmarks, to build an ever growing
library of test cases that cover both correctness and performance.

(just like other compiler teams are doing btw)

- What is the background that JAVA is much faster for such tests?
(Test code better adapted to perform on JAVA?)

The JIT compiler for Java can do quite advanced stuff.
Java usually suffers from GC, over-engineered and RTTI-based libraries,
but the Java JITters are quite good.

Eric
Guest
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 6:17 AM   in response to: Eric Grange in response to: Eric Grange
This is an issue where EMBT has to be pro-active rather than re-active,
and where they should be gathering benchmarks, to build an ever growing
library of test cases that cover both correctness and performance.
(just like other compiler teams are doing btw)

exactly what I was thinking of. Actually EMBT should have a great interest to develop in that area.
We could assist them in pointing on some critical test areas.

Now the big question: What have we to do that this may happen?!

regards

Günther
Janez Atmapuri ...

Posts: 240
Registered: 2/8/00
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 9, 2014 5:51 AM   in response to: Eric Grange in response to: Eric Grange
Hello Erric,

Where those loops involving floating-point?

Yes.

Then fixing the stack juggling could result in the fastest 32bit Delphi
yet (still far behind FPC though, as FPC knows about SSE2/AVX, etc.)

Actually I wonder what would mean for an average application, if you would
go to compiler options in the Rad Studio IDE and set Inlining to "Auto".

This switch is set to automatically decide if an function is to be inlined
or not
depending on its size. Since the inlining performance has been fixed, there
could
be some applications which are not doing math, but could see a noticeable
increase in the user interface performance and responsiveness.

Regards!
Atmapuri
Eli M

Posts: 1,327
Registered: 11/9/13
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 10, 2014 7:11 PM   in response to: Janez Atmapuri ... in response to: Janez Atmapuri ...
Delphi XE5 64bit
Composite Score MFlops: 850.50
FFT Mflops: 996.71 (N=1024)
SOR Mflops: 729.91 (100 x 100)
MonteCarlo: Mflops: 214.75
Sparse matmult Mflops: 314.29 (N=1000, nz=5000)
LU Mflops: 1996.83 (M=100, N=100)

Delphi XE5 64bit (Auto Inline)
Composite Score MFlops: 815.79
FFT Mflops: 374.62 (N=1024)
SOR Mflops: 1126.22 (100 x 100)
MonteCarlo: Mflops: 183.73
Sparse matmult Mflops: 505.29 (N=1000, nz=5000)
LU Mflops: 1889.08 (M=100, N=100)

Delphi XE5 64bit Manual Inline
Composite Score MFlops: 999.41
FFT Mflops: 1001.29 (N=1024)
SOR Mflops: 1121.30 (100 x 100) //inline
MonteCarlo: Mflops: 210.79
Sparse matmult Mflops: 594.97 (N=1000, nz=5000) //inline
LU Mflops: 2068.69 (M=100, N=100)

Delphi XE5 64bit Manual Inline + Fix
Composite Score MFlops: 1015.83
FFT Mflops: 1014.68 (N=1024)
SOR Mflops: 1126.54 (100 x 100) //inline
MonteCarlo: Mflops: 212.03
Sparse matmult Mflops: 645.36 (N=1000, nz=5000) //inline // local var removal
LU Mflops: 2080.51 (M=100, N=100)

Delphi XE6 64bit Manual Inline + Fix
Composite Score MFlops: 1001.70
FFT Mflops: 996.71 (N=1024)
SOR Mflops: 1120.97 (100 x 100) //inline
MonteCarlo: Mflops: 216.13
Sparse matmult Mflops: 630.76 (N=1000, nz=5000) //inline // local var removal
LU Mflops: 2043.91 (M=100, N=100)

FPC 2.6.4 64bit Inline (I don’t know if I did the 64bit right here as the numbers are almost the same as 32bit)
Composite Score MFlops: 613.24
FFT Mflops: 416.54 (N=1024)
SOR Mflops: 1111.04 (100 x 100) // inline
MonteCarlo: Mflops: 122.71
Sparse matmult Mflops: 559.24 (N=1000, nz=5000) //inline // local var removal
LU Mflops: 856.68 (M=100, N=100)
Janez Atmapuri ...

Posts: 240
Registered: 2/8/00
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 11, 2014 1:45 AM   in response to: Eli M in response to: Eli M
Hi,

Yes, but that Is not what I meant.

Taking a package like NexusDB maybe or TeeChart Pro for example and compile
source code as is out of the box.

These are libraries which have vertical structure of processing. They take
one sample and pass it through
20 functions (20 nested function calls within one top level loop for each
value in array).
Horizontal structure means you take all values in vector and pass it to each
function one
after another. (multiple loops but no function calls within loops). If the
program is written horizontally, XE6
might be 30% slower for 32bit. This is the case with SciMark.

For vertical libraries the inlining improvement might give 2x or 3x faster
code
in some cases. The question remains if "Auto" can actually go 3 or 4 levels
deep and inline entire tree, or you
would need to actually specify "inline" for almost every function.

When people say their application seems snappier, that might actually be the
case. But it is
hard to quantify. On the other it is Sunday and didn’t have much time to try
this on my own yet <g>

And yes, if you would invest 3 months of work in optimizing the code of
these package then there would
indeed be little gain to notice between XE5 and XE6 as the results you
posted show.

Regards!
Atmapuri

"Eli M" wrote in message news:673712 at forums dot embarcadero dot com...

Delphi XE5 64bit
Composite Score MFlops: 850.50
FFT Mflops: 996.71 (N=1024)
SOR Mflops: 729.91 (100 x 100)
MonteCarlo: Mflops: 214.75
Sparse matmult Mflops: 314.29 (N=1000, nz=5000)
LU Mflops: 1996.83 (M=100, N=100)

Delphi XE5 64bit (Auto Inline)
Composite Score MFlops: 815.79
FFT Mflops: 374.62 (N=1024)
SOR Mflops: 1126.22 (100 x 100)
MonteCarlo: Mflops: 183.73
Sparse matmult Mflops: 505.29 (N=1000, nz=5000)
LU Mflops: 1889.08 (M=100, N=100)

Delphi XE5 64bit Manual Inline
Composite Score MFlops: 999.41
FFT Mflops: 1001.29 (N=1024)
SOR Mflops: 1121.30 (100 x 100) //inline
MonteCarlo: Mflops: 210.79
Sparse matmult Mflops: 594.97 (N=1000, nz=5000) //inline
LU Mflops: 2068.69 (M=100, N=100)

Delphi XE5 64bit Manual Inline + Fix
Composite Score MFlops: 1015.83
FFT Mflops: 1014.68 (N=1024)
SOR Mflops: 1126.54 (100 x 100) //inline
MonteCarlo: Mflops: 212.03
Sparse matmult Mflops: 645.36 (N=1000, nz=5000) //inline // local var
removal
LU Mflops: 2080.51 (M=100, N=100)

Delphi XE6 64bit Manual Inline + Fix
Composite Score MFlops: 1001.70
FFT Mflops: 996.71 (N=1024)
SOR Mflops: 1120.97 (100 x 100) //inline
MonteCarlo: Mflops: 216.13
Sparse matmult Mflops: 630.76 (N=1000, nz=5000) //inline // local var
removal
LU Mflops: 2043.91 (M=100, N=100)

FPC 2.6.4 64bit Inline (I don’t know if I did the 64bit right here as the
numbers are almost the same as 32bit)
Composite Score MFlops: 613.24
FFT Mflops: 416.54 (N=1024)
SOR Mflops: 1111.04 (100 x 100) // inline
MonteCarlo: Mflops: 122.71
Sparse matmult Mflops: 559.24 (N=1000, nz=5000) //inline // local var
removal
LU Mflops: 856.68 (M=100, N=100)
Rudy Velthuis (...


Posts: 7,591
Registered: 9/22/99
Re: XE6 compiler improvements!
Click to report abuse...   Click to reply to this thread Reply
  Posted: May 12, 2014 8:42 AM   in response to: Eric Grange in response to: Eric Grange
Eric Grange wrote:

1.) The loop counter is now a register variable. Before it was
stored in memory.

Is that new? Or is it for 64bit?

The 32 bit compiler has been able to use register variables for loops
for a long time.

Indeed.

--
Rudy Velthuis (TeamB) http://www.teamb.com

Bove's Theorem: The remaining work to finish in order to reach
your goal increases as the deadline approaches.

Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02