Announcement

Collapse
No announcement yet.

Intel Is Trying To Support The x32 ABI For LLVM/Clang

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • discordian
    replied
    Originally posted by markg85 View Post
    Another 2 users (mcirsta and discordian) that don't understand shit about x32...

    Let me put it in clear terms:

    x32 is __not__ 32 bit libs or even a continuation of i386.
    Please.. Get it in your head!
    If you still don't get it then read it like this: x32 is a means to optimize the memory usage in x64. Your app stays 64 bit!. The statement is not completely accurate, but apparently some people only understand simple short lines.
    Funny, I never said that. So you have reading comprehension issues?
    x32: allows apps with 32 and 64 bit pointers, without different CPU Modes. You need, for the most part differently compiled libraries for each - x32 and 64bit
    amd64: the common 64bit mode, needs 64bit libs
    x86: the common 32bit mode, needs 32bit libs (different then x32 libs)

    this makes 3 different kinds of libraries, you might have to use if you eg. use x32 and 64bit apps and use some precompiled stuff like Skype.

    Leave a comment:


  • smitty3268
    replied
    Originally posted by Marc Driftmeyer View Post
    Firefox 30 was chewing up > 6 GB of RAM just yesterday, due to a mix of javascript overkill and flash taking a giant dump on gaming [all on Debian Unstable/Experimental].
    95% of firefox users are running a 32bit process on windows, so 4GB is obviously plenty for the vast majority of people.

    Throw in any scientific application and the 4GB ceiling is retarded. Same with Solid Modeling, Audio Mixing, you name it.
    Sure. Which is used by what, 1/10th of 1 percent of people? Probably a lot less. I'm not saying nothing needs 4GB - just like i'm not saying nothing will benefit from the 32-bit pointers - it's just that in both cases the benefits will only affect a very small percentage of people.

    Sorry, but the vast majority of applications will soon be routinely wanting to use larger memory limits, especially with every numbnut wanting to make Web Apps approach the speeds of traditional applications space, just with an overkill of abstraction.
    Don't be ridiculous. Abstractions don't add GB of memory use.

    Leave a comment:


  • Marc Driftmeyer
    replied
    Originally posted by smitty3268 View Post
    It's really not any more accurate than what they were saying - a 64bit app usually refers to how large the pointer size is.

    x32 is different from both x86 and x64.

    To summarize:

    x32 requires modern x64 hardware.

    It can allow higher performance than x64, at the cost of only allow 4GB memory per process.

    Neither this pro or con is very important to most people. The large majority of apps won't have any noticeable speed boost, and they don't hit 4GB either. A few specialized apps can improve, though - particularly a certain important industry standard database benchmark, which is largely what is driving development of x32.

    If you have an x32 app on your system, it will have to link to x32 libraries. Just like x64 apps link to x64 libraries and x86 apps link to x86 libraries.

    That complication of adding a 3rd level of compatibility libraries is why i don't see x32 ever going mainstream in the standard desktop linux distributions. I could be wrong though... Maybe someone will come out with a stripped down "pure" x32 system at some point that people can play around with, and obviously there is always Gentoo for people who want to go that route.
    Firefox 30 was chewing up > 6 GB of RAM just yesterday, due to a mix of javascript overkill and flash taking a giant dump on gaming [all on Debian Unstable/Experimental].

    Throw in any scientific application and the 4GB ceiling is retarded. Same with Solid Modeling, Audio Mixing, you name it.

    Sorry, but the vast majority of applications will soon be routinely wanting to use larger memory limits, especially with every numbnut wanting to make Web Apps approach the speeds of traditional applications space, just with an overkill of abstraction.

    Leave a comment:


  • smitty3268
    replied
    Originally posted by markg85 View Post
    If you still don't get it then read it like this: x32 is a means to optimize the memory usage in x64. Your app stays 64 bit!. The statement is not completely accurate, but apparently some people only understand simple short lines.
    It's really not any more accurate than what they were saying - a 64bit app usually refers to how large the pointer size is.

    x32 is different from both x86 and x64.

    To summarize:

    x32 requires modern x64 hardware.

    It can allow higher performance than x64, at the cost of only allow 4GB memory per process.

    Neither this pro or con is very important to most people. The large majority of apps won't have any noticeable speed boost, and they don't hit 4GB either. A few specialized apps can improve, though - particularly a certain important industry standard database benchmark, which is largely what is driving development of x32.

    If you have an x32 app on your system, it will have to link to x32 libraries. Just like x64 apps link to x64 libraries and x86 apps link to x86 libraries.

    That complication of adding a 3rd level of compatibility libraries is why i don't see x32 ever going mainstream in the standard desktop linux distributions. I could be wrong though... Maybe someone will come out with a stripped down "pure" x32 system at some point that people can play around with, and obviously there is always Gentoo for people who want to go that route.

    Leave a comment:


  • markg85
    replied
    Originally posted by discordian View Post
    Usually yes, you need x32 libs (together with the regular 32bit and 64bit x86 libs that would mean possibly 3 sets of one library). In some cases you could get along with using 64 bit libs for x32 apps, regular 32bit needs to change the cpu mode and wont ever work. I dont know if this is planned for - such a lib would either be really simple, really strict or really complicated to work with both 64 and 32 bit programms.

    x32 sounds like a really nice thing for pretty much any user, but its probably only usefull if you can limit yourself to a clean x32 environment.
    Another 2 users (mcirsta and discordian) that don't understand shit about x32...

    Let me put it in clear terms:

    x32 is __not__ 32 bit libs or even a continuation of i386.
    Please.. Get it in your head!
    If you still don't get it then read it like this: x32 is a means to optimize the memory usage in x64. Your app stays 64 bit!. The statement is not completely accurate, but apparently some people only understand simple short lines.

    Leave a comment:


  • brad0
    replied
    Originally posted by schmidtbag View Post
    "The Linux x32 ABI about allowing programs to take advantage of x86_64 features (and being dependent upon x86 64-bit CPUs) while using 32-bit memory pointers."

    To me, this sounds like trying to use 64 bit features on 32 bit architectures. While it doesn't explicitly say this is for 32 bit architectures, I feel that is the intended use in the long run. While I rarely mess with languages like C/C++, I don't see why (if you're on a 64 bit system) to use 32-bit pointers expecting them to use x86-64 features when you could just use 64-bit pointers. If what I'm saying is wrong then sure, it might not have been great to presume the worst, but it still doesn't change the fact that intel has been dragging 32 bit products even into 2013 and I'm getting tired of it.
    Wow. Reading comprehension issues. The x32 ABI has nothing to do with a 32-bit x86 CPU. It says right in the sentence you quoted it is a 32-bit ABI for 64-bit x86 CPUs.

    Regarding 32-bit CPUs, the last CPU line that was 32-bit only was the Atom family and they've finally eliminated 32-bit only models of their Atom CPUs with the Silvermont microarchitecture; which represents all of Intel's power efficient and/or low end CPUs for embedded devices / tablets / phones and lower end PCs / servers.

    Leave a comment:


  • discordian
    replied
    Originally posted by mcirsta View Post
    I keep bumping into things requiring 32bit libs on x64, propriteary things like Skype and such. I don't want any 32bit libs, does x32 mean I'll need some special libs too or can it use the 64bit libs ? If it can't use the 64bit libs I don't want it.
    Usually yes, you need x32 libs (together with the regular 32bit and 64bit x86 libs that would mean possibly 3 sets of one library). In some cases you could get along with using 64 bit libs for x32 apps, regular 32bit needs to change the cpu mode and wont ever work. I dont know if this is planned for - such a lib would either be really simple, really strict or really complicated to work with both 64 and 32 bit programms.

    x32 sounds like a really nice thing for pretty much any user, but its probably only usefull if you can limit yourself to a clean x32 environment.

    Leave a comment:


  • markg85
    replied
    Originally posted by simcop2387 View Post
    Actually x32 has all 16 integer registers available to it. Along with all the new AVX/SSE4.1 stuff that you can only get in long mode in the processor. You get the performance benefits of the shorter pointers by giving up more than 4gb of ram per x32 process. The best part is that you can have x32 processes run along side x64 processes without any performance issues from the extra overhead of switching from long mode to the protected sub-mode for 32bit/i686 programs.

    http://en.wikipedia.org/wiki/X32_ABI
    ahh oops. I read that table wrong. You are completely right.

    To clarify my last post (since i can't edit it anymore).
    The only downside of x32 is 4GB/process. If you can even call that a downside.
    Other then this it really looks like a wonderful technique to use.

    I wonder if Qt already support x32.
    /me starts searching
    Last edited by markg85; 02 July 2014, 04:25 PM.

    Leave a comment:


  • simcop2387
    replied
    Originally posted by markg85 View Post
    It also brings back some drawbacks that you'd also have with the i386 architecture like less registers and only 4GB per process.
    Actually x32 has all 16 integer registers available to it. Along with all the new AVX/SSE4.1 stuff that you can only get in long mode in the processor. You get the performance benefits of the shorter pointers by giving up more than 4gb of ram per x32 process. The best part is that you can have x32 processes run along side x64 processes without any performance issues from the extra overhead of switching from long mode to the protected sub-mode for 32bit/i686 programs.

    Leave a comment:


  • mcirsta
    replied
    one question though

    I keep bumping into things requiring 32bit libs on x64, propriteary things like Skype and such. I don't want any 32bit libs, does x32 mean I'll need some special libs too or can it use the 64bit libs ? If it can't use the 64bit libs I don't want it.

    Leave a comment:

Working...
X