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