1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-01 16:33:37 +01:00
Commit Graph

7492 Commits

Author SHA1 Message Date
Evan Cheng
6125b9e097 - More pre-split fixes: spill slot live interval computation bug; restore point bug.
- If a def is spilt, remember its spill index to allow its reuse.

llvm-svn: 58375
2008-10-29 08:39:34 +00:00
Evan Cheng
cd21d433bb - Rewrite code that update register live interval that's split.
- Create and update spill slot live intervals.
- Lots of bug fixes.

llvm-svn: 58367
2008-10-29 05:06:14 +00:00
Daniel Dunbar
2265cf485e Factor shouldInline method out of Inliner.
- No functionality change.

llvm-svn: 58355
2008-10-29 01:02:02 +00:00
David Greene
b33593aa75 Don't force things to be Value * when they're not.
llvm-svn: 58354
2008-10-29 00:30:54 +00:00
Daniel Dunbar
e2fe2de3f4 Assorted comment/naming fixes, 80-col violations, and reindentation.
- No functionality change.

llvm-svn: 58352
2008-10-28 23:24:26 +00:00
Dan Gohman
1218f7e751 Add some more information to the top-level comment for this file.
llvm-svn: 58339
2008-10-28 18:47:37 +00:00
Jim Grosbach
d735f403a0 Support for constant islands in the ARM JIT.
Since the ARM constant pool handling supercedes the standard LLVM constant
pool entirely, the JIT emitter does not allocate space for the constants,
nor initialize the memory. The constant pool is considered part of the 
instruction stream.

Likewise, when resolving relocations into the constant pool, a hook into
the target back end is used to resolve from the constant ID# to the
address where the constant is stored.

For now, the support in the ARM emitter is limited to 32-bit integer. Future
patches will expand this to the full range of constants necessary.

llvm-svn: 58338
2008-10-28 18:25:49 +00:00
Evan Cheng
f503542218 Avoid calls to setSubgraphColor in release mode. They generate lots of error messages and slow down compilation.
llvm-svn: 58336
2008-10-28 17:23:13 +00:00
Tanya Lattner
7bd0aec942 Do not allow a user to set the operand for a constant.
llvm-svn: 58335
2008-10-28 17:22:40 +00:00
Chris Lattner
1efb3a30c8 fit in 80 cols
llvm-svn: 58318
2008-10-28 06:20:17 +00:00
Chris Lattner
d9f28870cf more comment cleanups.
llvm-svn: 58316
2008-10-28 05:32:08 +00:00
Chris Lattner
b2d576facf comment cleanups.
llvm-svn: 58315
2008-10-28 05:31:31 +00:00
Dan Gohman
8edffdd299 Fix the name of the include guard to match the filename.
llvm-svn: 58310
2008-10-28 00:52:46 +00:00
David Greene
93f9f0f718 Have TableGen emit setSubgraphColor calls under control of a -gen-debug
flag.  Then in a debugger developers can set breakpoints at these calls
to see waht is about to be selected and what the resulting subgraph
looks like.  This really helps when debugging instruction selection.

llvm-svn: 58278
2008-10-27 21:56:29 +00:00
Daniel Dunbar
ec8e99098f Return bool (inserted) from StringSet::insert as for StringMap::insert.
llvm-svn: 58268
2008-10-27 20:50:02 +00:00
David Greene
5015610892 Add setSubgraphColor to color an entire portion of a SelectionDAG. This
will be used to support debug features in TableGen.

llvm-svn: 58257
2008-10-27 18:17:03 +00:00
David Greene
e8f05397ca Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.

llvm-svn: 58256
2008-10-27 18:15:15 +00:00
Torok Edwin
0c0acebd09 export an ID for the instructionNamer, allowing analysis/transformation passes
that need it to require it by ID.

llvm-svn: 58238
2008-10-27 10:16:27 +00:00
Evan Cheng
3bcbccf563 For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them.
llvm-svn: 58230
2008-10-27 07:14:50 +00:00
Oscar Fuentes
791d14f571 Return something (i.e. NULL) from an unimplemented virtual function.
llvm-svn: 58183
2008-10-26 04:26:33 +00:00
Oscar Fuentes
a96ce230e0 CMake: GetTargetTriple: new module for determining the target
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.

llvm-svn: 58176
2008-10-26 00:47:52 +00:00
Evan Cheng
7156715793 Add storeRegTo{StackSlot|Addr} and loadRegFrom{StackSlot|Addr} descriptions.
llvm-svn: 58164
2008-10-25 23:08:22 +00:00
Dan Gohman
64431fe1db Make comments and code for QuietWarnings and QuietErrors
actually correspond to what their names suggest.

llvm-svn: 58146
2008-10-25 17:57:20 +00:00
Nicolas Geoffray
ce30b5caf0 Support for allocation of TLS variables in the JIT. Allocation of a global
variable is moved to the execution engine. The JIT calls the TargetJITInfo
to allocate thread local storage. Currently, only linux/x86 knows how to
allocate thread local global variables.

llvm-svn: 58142
2008-10-25 15:41:43 +00:00
Oscar Fuentes
edaf4cded2 CMake: MSVC++ no longer uses a special configuration method.
llvm-svn: 58132
2008-10-25 03:29:36 +00:00
Oscar Fuentes
5021ba82e0 CMake: Sync'ed DataTypes.h.cmake with DataTypes.h.in.
llvm-svn: 58131
2008-10-25 03:25:11 +00:00
Evan Cheng
a7a0aabf99 Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).
llvm-svn: 58068
2008-10-24 02:05:00 +00:00
Dan Gohman
ed90fd3ecf Fix constant-offset emission for x86-64 absolute addresses. This
fixes a bunch of test-suite JIT failures on x86-64 in
-relocation-model=static mode.

llvm-svn: 58066
2008-10-24 01:57:54 +00:00
Ted Kremenek
b04b85f615 Added raw_fd_ostream::close().
llvm-svn: 58052
2008-10-23 23:49:09 +00:00
Steve Naroff
ea17111230 Changes to make the Windows build work...
- Add a file to the VC++ project.
- Make sure the clang driver links against the Transforms library.
- Incorporate changes from patch by Dan Gohman.

llvm-svn: 58048
2008-10-23 23:28:23 +00:00
Evan Cheng
c906d4938e Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible.
llvm-svn: 58044
2008-10-23 20:43:13 +00:00
Argyrios Kyrtzidis
6ffea1355c Introduce INT64_C macro and unbreak LLVM on MSVC.
llvm-svn: 58039
2008-10-23 17:20:39 +00:00
Daniel Dunbar
5447f9679d Change create*Pass factory functions to return Pass* instead of
LoopPass*.
 - Although less precise, this means they can be used in clients
   without RTTI (who would otherwise need to include LoopPass.h, which
   eventually includes things using dynamic_cast). This was the
   simplest solution that presented itself, but I am happy to use a
   better one if available.

llvm-svn: 58010
2008-10-22 23:32:42 +00:00
Ted Kremenek
fb81568ed6 Fix incorrect testing for the end of the both strings in CStrInCStrNoCase. This could cause a read-out-of-bounds error if s2 is smaller than s1.
llvm-svn: 58009
2008-10-22 23:16:52 +00:00
Daniel Dunbar
287cf9f1f7 Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass.
- The old versions are still hanging around, but should be migrated
   away from.

llvm-svn: 57989
2008-10-22 17:39:14 +00:00
Duncan Sands
81c4c88859 Add some comments explaining the meaning of a boolean
that is not of type MVT::i1 in SELECT and SETCC nodes.
Relax the LegalizeTypes SELECT condition promotion
sanity checks to allow other condition types than i1.

llvm-svn: 57966
2008-10-22 09:06:24 +00:00
Daniel Dunbar
d1169ccaf2 Move Print*Pass to use raw_ostream.
llvm-svn: 57946
2008-10-22 03:25:22 +00:00
Bill Wendling
f7f3d038a6 Fix comment to name "TokenFactor" instead of "Token factor".
llvm-svn: 57939
2008-10-21 23:57:52 +00:00
Daniel Dunbar
919ce3c16a Privatize PrintModulePass and PrintFunctionPass and add
createPrintModulePass and createPrintFunctionPass.
 - So clients who compile w/o RTTI can use them.

llvm-svn: 57933
2008-10-21 23:33:38 +00:00
Daniel Dunbar
aa7a7ae8d5 Clear raw_fd_ostream error string on success and explain behavior in
documentation.

Add C++ header marker.

llvm-svn: 57923
2008-10-21 19:53:10 +00:00
Nuno Lopes
112ac04abd fix a tricky bug in the JIT global variable emitter, that was triggered when JITing a variable independently of a function. This lead to sharing memory memory between functions and GVs thus changing the value of a GV could change the code in execution. more details on the ML.
llvm-svn: 57900
2008-10-21 11:42:16 +00:00
Ted Kremenek
270f3e22d5 constify some methods and variables in ImmutableList.
llvm-svn: 57894
2008-10-21 05:59:33 +00:00
Evan Cheng
1bc92a1aa6 Add skeleton for the pre-register allocation live interval splitting pass.
llvm-svn: 57847
2008-10-20 21:44:59 +00:00
Jim Grosbach
1de8b23129 Update the stub and callback code to handle lazy compilation. The stub
is re-written by the callback to branch directly to the compiled code
in future invocations.

Added back in range-based memory permission functions for the updating of
the stub on Darwin.

llvm-svn: 57846
2008-10-20 21:39:23 +00:00
Evan Cheng
c4d1fb1435 Add a register class -> virtual registers map.
llvm-svn: 57844
2008-10-20 20:03:28 +00:00
Evan Cheng
9d9f1ff960 This forward declaration is unnecessary.
llvm-svn: 57843
2008-10-20 20:02:17 +00:00
Duncan Sands
16503c7e76 Teach getTypeToTransformTo to return something
sensible for vectors being scalarized.  Note
that this method can't return anything very
sensible when splitting non-power-of-two vectors.

llvm-svn: 57839
2008-10-20 16:24:25 +00:00
Dan Gohman
1c36874fdd Fix a typo in a comment.
llvm-svn: 57832
2008-10-20 15:58:02 +00:00
Matthijs Kooijman
3f50eb8347 Fix typo in a comment.
llvm-svn: 57829
2008-10-20 11:24:57 +00:00
Matthijs Kooijman
d63d1e317b Remove another stale comment.
llvm-svn: 57828
2008-10-20 11:23:18 +00:00