- User Since
- Jan 2 2013, 4:34 PM (268 w, 13 m)
With the pipelining restriction, this doesn't seem very useful. Typically this is used to send outputs to FileCheck, although we could rewrite most of those uses to stdin redirects (<).
Fri, Feb 16
Thu, Feb 15
- rebase over prologue/epilogue loc change
Can you add a test for special member functions? I wasn't able to find one, but maybe there is one already. I tried this and it looks like MSVC uses the class code_seg:
- revise as discussed
I discussed alternative approaches with @echristo, and felt that this would be the best. Eric, do you want to take a look?
I'll go ahead and make these changes to get us back to our behavior before https://reviews.llvm.org/D42632.
Seems reasonable, a few nits.
Wed, Feb 14
Tue, Feb 13
Clang's builtin headers use __attribute__((__nodebug__)) for this purpose. Do you think we should follow this up by using artificial instead? It seems like it would be a representational improvement. @aprantl @probinson @dblaikie
It looks like we already generate llvm.assume() for these and that eventually behaves the same as the unreachable instruction. Neat. :)
- fixup boolean logic error
- switch enum style and comparisons
We might want to consider some kind of helper on Function that checks for optnone and naked to block these kinds of prototype-changing optimizations.
I don't think we should enable PDBs in release mode by default. One of the main uses cases for building in release mode (without PDBs) is to speed up the build. /Zi creates bottlenecks on machines with many cores, and adding /debug to the final link step really hurts incremental build speed.
Mon, Feb 12
Fri, Feb 9
- Add test, update comments
lgtm, thanks for revamping the VS integration!
Thu, Feb 8
This works even though we pass -Wa,-mbig-obj?
Wed, Feb 7
Maybe we shouldn't do this, I wrote in the bug:
Unfortunately, it sounds like forcibly setting the user's console to the UTF8 codepage is hostile: https://github.com/stedolan/jq/issues/1121 Apparently it can cause window resizing, and I was able to confirm that the setting persists after exiting clang, which is really unclean. I want a solution where clang just prints UTF-8 and it works.
I wonder if it would be more general to handle this stuff earlier in the generated calling convention code, so that the use of XMM registers is conditionalized on the subtarget support. In other words, if SSE isn't available, we'd end up assigning FP values to stack locations, just as if all SSE registers had already been consumed. We could diagnose the error at that point. I think all this code is table-generated, which makes it hard to see and edit with these fixes.
These ABIInfo classes don't have any state, so just building one on the stack as needed is the way to go. Thanks for the fix!
I'm guessing things were structured this way so that a function definition could have its visibility set before giving it a body, i.e. it would look like a declaration, but the visibility should be "for a definition". If everything works I suppose we don't do that anymore.
Tue, Feb 6
I'd back out the C API changes, but otherwise this makes sense to me. Let's check with @aprantl, though.
Mon, Feb 5
Thanks! So, I guess nesting S_DEFRANGE inside S_BLOCK32 works in VS? I thought we did experiments to show that it didn't, but hey, if it works, great.
- address feedback
- address feedback
One concern I have is that this is a common pattern on Linux:
int fd = open(...); void *mem = mmap(fd, ...); close(fd); // use mem
Thu, Feb 1
This is actually consistent with what Microsoft does for dllimport classes. They don't have key functions, but they do import vftables when a class is dllimport and the constructor is inline. They never import RTTI and always emit it locally.