MSVC vs. ICC & Waterfox

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-09, 23:13

I just had a look at the latest Waterfox, version 13, and noticed that it is compiled with ICC, the Intel C compiler, now.

A bad choice unless Waterfox really wants to aim for the GenuineIntel processors only - if their main focus is still speed, it should be indiscriminant of hardware architecture.

ICC, unlike MSVC, still discriminates against non-GenuineIntel hardware when trying to use SSE2/SSE3 and other advanced SIMD instruction sets.
As far as I can tell, the Wikipedia article describing this is still current, and quotes:
In late 2010, AMD settled an US Federal Trade Commission antitrust investigation against Intel.[24]
The FTC settlement included a disclosure provision where Intel must:[25]:
"...publish clearly that its compiler discriminates against non-Intel processors (such as AMD's designs), not fully utilizing their features and producing inferior code."
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
satrow
Forum staff
Forum staff
Posts: 1885
Joined: 2011-09-08, 11:27

Re: MSVC vs. ICC & Waterfox

Unread post by satrow » 2012-06-09, 23:37

I've been paying some attention to that OCN thread, there's been what feels like a well above average amount of complaints and issues with the current version, even though he seems to have some decent help/hints since the beta and released a number of recompiled versions during the last week.

I feel that AMD/ATI would be seen as stronger competition to Intel/nVidia if there were some balanced compilers, feels like the deck is still stacked to me.

lyceus

Re: MSVC vs. ICC & Waterfox

Unread post by lyceus » 2012-06-10, 05:03

The last Intel machine I have is a Pentium III machine, Intel machines are very expensive even if you build them from components. So may waterfox want to go to for some sponsorship from Intel? :D

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-10, 08:47

lobocursor wrote:The last Intel machine I have is a Pentium III machine, Intel machines are very expensive even if you build them from components. So may waterfox want to go to for some sponsorship from Intel? :D
I noticed they are rooting for "Project of the month" on SourceForge now, so it definitely looks like another bout of trying to get more "shout" for less result.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-10, 08:51

satrow wrote:I feel that AMD/ATI would be seen as stronger competition to Intel/nVidia if there were some balanced compilers, feels like the deck is still stacked to me.
It is, which is why I flipped the compiler directive in MSVC-x64 to balance out resulting machine code for AMD processors, with the inherent bias (both in the compiler and in manually created assembly code in the Mozilla tree afaict) towards Intel machines. I think 12.2-x64 is fairly balanced regardless of architecture as a result. Unfortunately I can't do this for 32-bit builds.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

stravinsky

Re: MSVC vs. ICC & Waterfox

Unread post by stravinsky » 2012-06-12, 08:36

so building by ICC has become stable enough ?

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-12, 10:44

stravinsky wrote:so building by ICC has become stable enough ?
I don't know, I'm not touching ICC until they remove their GenuineIntel check.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

stravinsky

Re: MSVC vs. ICC & Waterfox

Unread post by stravinsky » 2012-06-12, 13:30

how about taking a user poll on this?
something like :

which browser would you prefer :
1. optimised for intel
2.vendor neutral
3. optimized for AMD
4. dont care.
5. whatever you do, just make it faster.

i think a typical PM user would be tech-savvy enough to know whether he has AMD or Intel.

jaycelou

Re: MSVC vs. ICC & Waterfox

Unread post by jaycelou » 2012-06-12, 13:44

2. vendor neutral

and

5. whatever you do, just make it faster.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-12, 13:56

A poll is rather moot. in general, people with Intel machines will choose Intel. People with AMD machines will choose AMD. That's just human psychology for you. Pale Moon x64 is as vendor neutral now as it can be which serves everyone well.

EDIT: and not using ICC is making sure it stays that way.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

stravinsky

Re: MSVC vs. ICC & Waterfox

Unread post by stravinsky » 2012-06-12, 14:13

about 75% would be having intel.
so the greatest possible good for the greatest number of people......

stravinsky

Re: MSVC vs. ICC & Waterfox

Unread post by stravinsky » 2012-06-12, 14:39

just downloaded waterfox 64 bit with its OMGWTF compiler optimisations. and they are using lots of compiler optimisations and intel optimised libraries.
couldnt tell any difference on my first generation core i3. maybe someone with an intel AVX CPU might feel any difference. not interested.

@Moonchild :
disregard my earlier posts.
you might use any compiler you like. using ICC vs MSVC makes hardly any subjective difference to me atleast.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-12, 15:03

stravinsky wrote:disregard my earlier posts.
you might use any compiler you like. using ICC vs MSVC makes hardly any subjective difference to me atleast.
... on your Intel CPU, yes. But having slow paths used on non-Intel will be noticed.

As for "the greatest possible good for the greatest number of people": that is biasing purely on numbers, and not on good practice. And there's no reason why I shouldn't use MSVC in favor of ICC, since ICC actively disadvantages the other 25%. Wrong attitude.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Hoggyy

Re: MSVC vs. ICC & Waterfox

Unread post by Hoggyy » 2012-06-24, 04:26

Well, I'm new here.. I have PM installed on my 32-bit machines but not on my Win7 x64 AMD laptop yet (using Waterfox 13 now).

So obviously I'm biased for an AMD version.

However, why can't separate optimizations for BOTH architectures be done? Isn't it just compiler settings, or is there more to it than that?

After reading this thread though, I'm seriously considering putting PM x64 on here now..

Thanks.

EDIT: I ended up putting PM x64 on my AMD machine.. I backed up my full Waterfox profile using FEBE and copied it onto Pale Moon (also using FEBE). If that could end up being a problem, please let me know.
I can't completely tell if it's faster than Waterfox yet, but I will try to compare them.. The only problem with that is that I decided to also copy the Session Manager extension's folder - so the tabs wont be synced. I hope to be able to run them side-by-side to compare, if that will turn out to be possible.
I will say though that it seems to be smoother & slicker - if that makes sense. The extension side panel from All-in-One Sidebar does seem to open up a fair bit quicker than Waterfox. I have yet to find out if that problem with unresponsiveness shows up as it does in Waterfox -- you know, when you click on a text box and it takes a bit for the cursor to show up and to be able to start typing... I've read (& have experienced many times on various machines) that's a common problem with the regular type of Firefox's, including Waterfox for sure.
So far, so good though! Now, ALL my machines are running Pale Moon! =) :thumbup: :clap:
(sorry that I got a bit OT.)

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-24, 09:39

Hoggyy wrote:However, why can't separate optimizations for BOTH architectures be done? Isn't it just compiler settings, or is there more to it than that?
In ICC's case, it's not possible, since the compiler does a hard check if the CPU vendor is "GenuineIntel", and makes the compiled program use non-optimized code paths when running; resulting in unnecessary loss of speed (likely it won't even use SSE/SSE2 which has been around for quite a few years). As such, using ICC (like Waterfox does) is just crippling execution on any CPU that's not Genuine Intel and I won't consider the compiler because of that, even if it provides more compiler options for modern processors.

On AMD processors, you can expect (like you found out) considerably smoother operation of Pale Moon x64 than of Waterfox. In fact, the last benchmarking results I've seen of Waterfox were rather disappointing overall.

As for Pale Moon, I've got some vague plans to make 2 distinct x64 builds in the future to be grabbed from the web installer, one specifically favoring Intel and one specifically favoring non-Intel architectures. Although, I'll have to get some thorough beta testing done on that to see if it's worth my time to even build specifically for Intel as the current release is pretty well-balanced for architecture. It would be 2 distinct builds as it's either/or when building (you can only profile one of the two architectures in the build process at a time)
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

dark_moon

Re: MSVC vs. ICC & Waterfox

Unread post by dark_moon » 2012-06-24, 10:51

You build only the Intel/ AMD versions for the x64 builds? Why not for x86 too?

But i will help testing this then. (I have a Intel CPU)

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-24, 11:14

dark_moon wrote:You build only the Intel/ AMD versions for the x64 builds? Why not for x86 too?
For the 32-bit versions it's N/A, considering MSVC's 32-bit compiler doesn't have any compiler configuration options to aim for specific architectures. It will always be for a blend of models. The optimizations used and the architecture-specific functions are the same for any modern processor, anyway, as all of them (save maybe a few very old and borderline compatible ones) will have at least the basic SIMD instruction sets down properly.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

dark_moon

Re: MSVC vs. ICC & Waterfox

Unread post by dark_moon » 2012-06-24, 11:27

So the x64 build is with the optimization faster then the x86?

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35602
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: MSVC vs. ICC & Waterfox

Unread post by Moonchild » 2012-06-24, 12:03

dark_moon wrote:So the x64 build is with the optimization faster then the x86?
That is a difficult question to answer, since it depends a little on what you use your browser for and how well your used browser extensions like the 64-bit nature of the browser.

Overall, I dare say that it's most likely faster for any average use but you lose a lot of plugin compatibility going for x64. So it's still a trade-off - and the main reason why the web installer currently will not use x64 installs for "quick install" in any case.

You can always give both a try and see which one works best for you.

EDIT: Not forgetting possible issues you may run into because of 64-bit native graphics drivers, as well.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

stravinsky

Re: MSVC vs. ICC & Waterfox

Unread post by stravinsky » 2012-06-24, 12:59

s for Pale Moon, I've got some vague plans to make 2 distinct x64 builds in the future to be grabbed from the web installer, one specifically favoring Intel and one specifically favoring non-Intel architectures. Although, I'll have to get some thorough beta testing done on that to see if it's worth my time to even build specifically for Intel as the current release is pretty well-balanced for architecture.

@ Moonchild :

IMHO, spending time building two versions of PM x64 is not really needed.
from using waterfox and then PM, waterfox with its pro-intel builds and -OMGWTFILUVINTEL complier switches felt no smoother than PM. It could be benchmarking better, but thats not the point of PM, is it ?
Also, i have used lots of optimised FF builds like "lawliet FF" and others who use lots of compiler optimisations. They feel no better than PM.

building two separate versions which would probably feel the same is unproductive. plus it would mean double the support/testing.
the standard x64 build you currently make is completely OK.

EDIT: what will you use to make a pro-AMD build ?
EDIT2: by non-intel, i assume you are talking about AMD only and not VIA.

Locked