summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR7156. If the sources of a REG_SEQUENCE are all IMPLICIT_DEF's. Replace ↵Evan Cheng2010-05-172-2/+57
| | | | | | it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def. llvm-svn: 103984
* [rand.dist.norm.cauchy]. I'm having trouble testing the output as all ↵Howard Hinnant2010-05-1719-2/+767
| | | | | | 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
* vmov of immediates are trivially re-materializable.Evan Cheng2010-05-171-0/+2
| | | | llvm-svn: 103982
* MC/Mach-O/x86: Optimal nop sequences should only be used for the .text ↵Daniel Dunbar2010-05-172-15/+86
| | | | | | sections, not all sections in the text segment. llvm-svn: 103981
* MC: Add dyn_cast support to MCSection.Daniel Dunbar2010-05-176-6/+42
| | | | | | - 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
* MC/Mach-O: Reverse order of SymbolData scanning when emitting instructions.Daniel Dunbar2010-05-172-1/+101
| | | | | | | - This fixes a string table mismatch with 'as' when two new symbols are defined in a single instruction. llvm-svn: 103979
* Pull the UsedInInstr.test() calls into calcSpillCost() and remember aliases.Jakob Stoklund Olesen2010-05-171-5/+5
| | | | | | | 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
* Add some section and constant support for darwin TLS.Eric Christopher2010-05-175-4/+51
| | | | llvm-svn: 103974
* Clean up some more uses of getAs<ObjCInterfaceType>() that Fariborz pointedJohn McCall2010-05-176-28/+28
| | | | | | out. The remaining ones are okay. llvm-svn: 103973
* Fix an ambiguous else warning from GCC by adding some much needed curlies.Chandler Carruth2010-05-171-2/+3
| | | | llvm-svn: 103972
* Careful with reg_sequence coalescing to not to overwrite sub-register indices.Evan Cheng2010-05-172-40/+119
| | | | llvm-svn: 103971
* Got rid of more :: path namesHoward Hinnant2010-05-177-0/+0
| | | | llvm-svn: 103970
* Fix a regression in 464.h264 for thumb1 and thumb2 nightly tests.Bob Wilson2010-05-171-1/+1
| | | | | | Obvious in retrospect but not fun to debug. llvm-svn: 103969
* robustify the conflict marker stuff. Don't add 7 twice, which wouldChris Lattner2010-05-172-3/+5
| | | | | | | | | | | | | | | | | | | | | 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
* Fix missing '}'.Ted Kremenek2010-05-171-0/+1
| | | | llvm-svn: 103966
* Correctly generate IR for ObjC messages sends to protocol-qualified types.John McCall2010-05-172-5/+13
| | | | | | Fixes rdar://problem/7992749 llvm-svn: 103965
* MC/Mach-O: Fix some differences in symbol flag handling.Daniel Dunbar2010-05-172-31/+120
| | | | | | | | | | | | | - 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
* Add libclang function 'clang_CXXMethod_isStatic' to query of a C++ methodTed Kremenek2010-05-174-2/+35
| | | | | | is declared static. llvm-svn: 103963
* Optimize empty DenseMap iteration.Jakob Stoklund Olesen2010-05-171-2/+3
| | | | llvm-svn: 103962
* Remove debug option. Add comment on spill order determinism.Jakob Stoklund Olesen2010-05-171-7/+4
| | | | llvm-svn: 103961
* Turn on -neon-reg-sequence by default.Evan Cheng2010-05-172-1/+172
| | | | | | Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers! llvm-svn: 103960
* Test that mutability of class members that involve class definitions ↵Douglas Gregor2010-05-171-0/+5
| | | | | | actually works llvm-svn: 103959
* Teach ASTContext::getUnqualifiedArrayType() how to look throughDouglas Gregor2010-05-172-5/+29
| | | | | | | typedefs. As a drive-by, teach hit how to build VLA types, since those will eventually be supported in C++. llvm-svn: 103958
* [rand.dist.norm.lognormal]Howard Hinnant2010-05-1719-1/+1185
| | | | llvm-svn: 103957
* mutable is a storage class that can follow a class/struct/union definition. ↵Douglas Gregor2010-05-172-0/+7
| | | | | | Fixes PR7153 llvm-svn: 103954
* Don't attempt to poke into an invalid field's class typeFariborz Jahanian2010-05-172-1/+37
| | | | | | | to mark its destructors as referenced which may cause a crash. Fixes radar 7896920 llvm-svn: 103953
* Diagnose a redefinition error when there are two instantiations of friendDouglas Gregor2010-05-172-6/+46
| | | | | | | functions defined inside a class template. Fixes PR6952, the last Boost.Units failure. llvm-svn: 103952
* llvm-mc: Support reassignment of variables in one special case, when theDaniel Dunbar2010-05-173-8/+26
| | | | | | | | 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
* Determine when the instantiation of a friend function defined inside aDouglas Gregor2010-05-174-8/+55
| | | | | | | class template conflicts with an existing (non-template) definition. This is another part of PR6952. llvm-svn: 103948
* Avoid allocating the same physreg to multiple virtregs in one instruction.Jakob Stoklund Olesen2010-05-172-0/+106
| | | | | | | | | 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
* IRgen: Remove dead function.Daniel Dunbar2010-05-171-17/+0
| | | | llvm-svn: 103945
* C++/Darwin/i386 ABI: Fix some problems with empty record handling.Daniel Dunbar2010-05-172-3/+38
| | | | | | | | - Check bases as part of isEmptyRecord(). - C++ record fields are never empty in the Itanium ABI. llvm-svn: 103944
* C++98/03 [temp.friend]p4 requires that inline function definitionsDouglas Gregor2010-05-173-2/+34
| | | | | | | | 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
* [rand.dist.pois.extreme]Howard Hinnant2010-05-1719-2/+1070
| | | | llvm-svn: 103942
* Ensure that destructors are called for NRVO'd objects when theDouglas Gregor2010-05-174-5/+65
| | | | | | | function does not return. Thanks to Eli for pointing out this corner case. llvm-svn: 103941
* Minor optimizations. DenseMap::begin() is surprisingly slow on an empty map.Jakob Stoklund Olesen2010-05-171-8/+7
| | | | llvm-svn: 103940
* Extract spill cost calculation to a new method, and use definePhysReg() to clearJakob Stoklund Olesen2010-05-171-86/+64
| | | | | | | | | | 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
* Pick the correct personality function based on the language. This prevents ↵David Chisnall2010-05-171-25/+26
| | | | | | | | 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
* [rand.dist.bern.geo]Howard Hinnant2010-05-1719-1/+1078
| | | | llvm-svn: 103937
* Remove unused member variable.Zhongxing Xu2010-05-172-3/+0
| | | | llvm-svn: 103936
* Only use clairvoyance when defining a register, and then only if it has one use.Jakob Stoklund Olesen2010-05-172-25/+16
| | | | | | This makes allocation independent on the ordering of use-def chains. llvm-svn: 103935
* Eliminate a hash table probe when killing virtual registers.Jakob Stoklund Olesen2010-05-171-15/+20
| | | | llvm-svn: 103934
* Execute virtreg kills immediately instead of after processing all uses.Jakob Stoklund Olesen2010-05-171-19/+16
| | | | | | 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
* PR7117: Make sure we don't lose the calling convention for K&R-styleEli Friedman2010-05-172-1/+8
| | | | | | | definitions. llvm-svn: 103932
* Sprinkle superregister <imp-def> and <imp-kill> operands when dealing with ↵Jakob Stoklund Olesen2010-05-171-10/+28
| | | | | | subregister indices. llvm-svn: 103931
* Now that we don't keep live registers across calls, there is not reason to goJakob Stoklund Olesen2010-05-171-7/+12
| | | | | | | through the very long list of call-clobbered registers. We just assume all registers are clobbered. llvm-svn: 103930
* Boldly attempt consistent capitalization. Functional changes unintended.Jakob Stoklund Olesen2010-05-171-42/+42
| | | | llvm-svn: 103929
* Assume that we'll handle mangling the symbols earlier and just put theEric Christopher2010-05-173-12/+7
| | | | | | symbol to the file as we have it. Simplifies out tbss handling. llvm-svn: 103928
* Spill and kill all virtual registers across a call.Jakob Stoklund Olesen2010-05-171-56/+28
| | | | | | 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
* Reduce hashtable probes by using DenseMap::insert() for lookup.Jakob Stoklund Olesen2010-05-171-48/+46
| | | | llvm-svn: 103926
OpenPOWER on IntegriCloud