| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def.
llvm-svn: 103984
|
| |
|
|
|
|
| |
statistical properties are undefined. They do not converge upon any one value as the number of samples increases. Suggestions for tests welcome.
llvm-svn: 103983
|
| |
|
|
| |
llvm-svn: 103982
|
| |
|
|
|
|
| |
sections, not all sections in the text segment.
llvm-svn: 103981
|
| |
|
|
|
|
| |
- Of questionable utility, since in general anything which wants to do this should probably be within a target specific hook, which can rely on the sections being of the appropriate type. However, it can be useful for short term hacks.
llvm-svn: 103980
|
| |
|
|
|
|
|
| |
- This fixes a string table mismatch with 'as' when two new symbols are defined
in a single instruction.
llvm-svn: 103979
|
| |
|
|
|
|
|
| |
This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod.
Clang now successfully self hosts in a debug build with the fast register allocator.
llvm-svn: 103975
|
| |
|
|
| |
llvm-svn: 103974
|
| |
|
|
|
|
| |
out. The remaining ones are okay.
llvm-svn: 103973
|
| |
|
|
| |
llvm-svn: 103972
|
| |
|
|
| |
llvm-svn: 103971
|
| |
|
|
| |
llvm-svn: 103970
|
| |
|
|
|
|
| |
Obvious in retrospect but not fun to debug.
llvm-svn: 103969
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make it miss (invalid) things like:
<<<<<<<
>>>>>>>
and crash if
<<<<<<<
was at the end of the line. When we find a >>>>>>> that is not at the
end of the line, make sure to reset Pos so we don't crash on something
like:
<<<<<<< >>>>>>>
This isn't worth making testcases for, since each would require a new file.
rdar://7987078 - signal 11 compiling "<<<<<<<<<<"
llvm-svn: 103968
|
| |
|
|
| |
llvm-svn: 103966
|
| |
|
|
|
|
| |
Fixes rdar://problem/7992749
llvm-svn: 103965
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't clear weak reference flag, 'as' was only "trying" to do this, it wasn't
actually succeeding.
- Clear the "lazy bound" bit when we mark something external. This corresponds
roughly to the lazy clearing of the bit that 'as' implements in
symbol_table_lookup.
- The exact meaning of these flags appears pretty loose, since 'as' isn't very
consistent. For now we just try to match 'as', we will clean this up one day
hopefully.
llvm-svn: 103964
|
| |
|
|
|
|
| |
is declared static.
llvm-svn: 103963
|
| |
|
|
| |
llvm-svn: 103962
|
| |
|
|
| |
llvm-svn: 103961
|
| |
|
|
|
|
| |
Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers!
llvm-svn: 103960
|
| |
|
|
|
|
| |
actually works
llvm-svn: 103959
|
| |
|
|
|
|
|
| |
typedefs. As a drive-by, teach hit how to build VLA types, since those
will eventually be supported in C++.
llvm-svn: 103958
|
| |
|
|
| |
llvm-svn: 103957
|
| |
|
|
|
|
| |
Fixes PR7153
llvm-svn: 103954
|
| |
|
|
|
|
|
| |
to mark its destructors as referenced which may cause
a crash. Fixes radar 7896920
llvm-svn: 103953
|
| |
|
|
|
|
|
| |
functions defined inside a class template. Fixes PR6952, the last
Boost.Units failure.
llvm-svn: 103952
|
| |
|
|
|
|
|
|
| |
variable has not yet been used in an expression. This allows us to support a few
cases that show up in real code (mostly because gcc generates it for Objective-C
on Darwin), without giving up a reasonable semantic model for assignment.
llvm-svn: 103950
|
| |
|
|
|
|
|
| |
class template conflicts with an existing (non-template)
definition. This is another part of PR6952.
llvm-svn: 103948
|
| |
|
|
|
|
|
|
|
| |
While that approach works wonders for register pressure, it tends to break
everything.
This should unbreak the arm-linux builder and fix a number of miscompilations.
llvm-svn: 103946
|
| |
|
|
| |
llvm-svn: 103945
|
| |
|
|
|
|
|
|
| |
- Check bases as part of isEmptyRecord().
- C++ record fields are never empty in the Itanium ABI.
llvm-svn: 103944
|
| |
|
|
|
|
|
|
| |
within class templates be instantiated along with each class template
specialization, even if the functions are not used. Do so, as a baby
step toward PR6952.
llvm-svn: 103943
|
| |
|
|
| |
llvm-svn: 103942
|
| |
|
|
|
|
|
| |
function does not return. Thanks to Eli for pointing out this corner
case.
llvm-svn: 103941
|
| |
|
|
| |
llvm-svn: 103940
|
| |
|
|
|
|
|
|
|
|
| |
out aliases when allocating. Clean up allocVirtReg().
Use calcSpillCost() to allow more aggressive hinting. Now the hint is always
taken unless blocked by a reserved register. This leads to more coalescing,
lower register pressure, and less spilling.
llvm-svn: 103939
|
| |
|
|
|
|
|
|
| |
link failures when C/ObjC code uses __attribute__((cleanup())) (previously this was inserting references to two libstc++ symbols; the personality function and the __terminate() function).
This is still probably wrong for Objective-C++ and adds a couple of lines in CGException that should probably be in the CGObjCRuntime subclass. The personality function is now only looked up in one place in CGException though, so this should be easier to fix in the future.
llvm-svn: 103938
|
| |
|
|
| |
llvm-svn: 103937
|
| |
|
|
| |
llvm-svn: 103936
|
| |
|
|
|
|
| |
This makes allocation independent on the ordering of use-def chains.
llvm-svn: 103935
|
| |
|
|
| |
llvm-svn: 103934
|
| |
|
|
|
|
| |
This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one.
llvm-svn: 103933
|
| |
|
|
|
|
|
| |
definitions.
llvm-svn: 103932
|
| |
|
|
|
|
| |
subregister indices.
llvm-svn: 103931
|
| |
|
|
|
|
|
| |
through the very long list of call-clobbered registers. We just assume all
registers are clobbered.
llvm-svn: 103930
|
| |
|
|
| |
llvm-svn: 103929
|
| |
|
|
|
|
| |
symbol to the file as we have it. Simplifies out tbss handling.
llvm-svn: 103928
|
| |
|
|
|
|
| |
Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed.
llvm-svn: 103927
|
| |
|
|
| |
llvm-svn: 103926
|