llvm-6502/lib
Puyan Lotfi efcc736270 Yet another patch to reduce compile time for small programs:
The aim in this patch is to reduce work that VirtRegRewriter needs to do when
telling MachineRegisterInfo which physregs are in use. Up until now
VirtRegRewriter::rewrite has been doing rewriting and populating def info and
then proceeding to set whether a physreg is used based this info for every
physreg that the target provides. This can be expensive when a target has an
unusually high number of supported physregs, and is a noticeable chunk of
compile time for small programs on such targets.

So to reduce compile time, this patch simply adds the use of a SparseSet to the
rewrite function that is used to flag each physreg that is encountered in a
MachineFunction. Afterward, rather than iterating over the set of all physregs
for a given target to set the physregs used in MachineRegisterInfo, the new way
is to iterate over the set of physregs that were actually encountered and set
in the SparseSet. This improves compile time because the existing rewrite
function was iterating over all MachineOperands already, and because the
iterations afterward to setPhysRegUsed is reduced by use of the SparseSet data.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200919 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-06 09:57:39 +00:00
..
Analysis [PM] Fix horrible typos that somehow didn't cause a failure in a C++11 2014-02-06 05:17:02 +00:00
AsmParser [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret' 2014-01-31 17:41:22 +00:00
Bitcode Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
CodeGen Yet another patch to reduce compile time for small programs: 2014-02-06 09:57:39 +00:00
DebugInfo Simplify the handling of iterators in ObjectFile. 2014-01-30 02:49:50 +00:00
ExecutionEngine Simplify getSymbolFlags. 2014-01-31 20:57:12 +00:00
IR Disable most IR-level transform passes on functions marked 'optnone'. 2014-02-06 00:07:05 +00:00
IRReader Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
LineEditor Avoid using EL_GETFP. 2014-02-04 20:04:46 +00:00
Linker Reapply r194218 with fix: 2014-01-16 06:29:36 +00:00
LTO Change MCStreamer EmitInstruction interface to take subtarget info 2014-01-28 23:12:42 +00:00
MC doesSectionRequireSymbols is meaningless on ELF, remove. 2014-02-06 00:54:53 +00:00
Object Use the information provided by getFlags to unify some code in llvm-nm. 2014-02-05 05:19:19 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support Revert "Fix an invalid check for duplicate option categories." 2014-02-05 17:49:31 +00:00
TableGen [TableGen] Correctly generate implicit anonymous prototype defs in multiclasses 2014-01-02 20:47:09 +00:00
Target X86: deduplicate V[SZ]EXT_MOVL and V[SZ]EXT nodes 2014-02-06 09:54:51 +00:00
Transforms A memcpy out of an fresh alloca is a no-op, delete it. Patch by Patrick Walton! 2014-02-06 06:29:19 +00:00
CMakeLists.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
LLVMBuild.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
Makefile Introduce line editor library. 2014-01-31 23:46:14 +00:00