llvm-6502/include/llvm
David Majnemer 5a1a1856a4 Windows: Add support for unicode command lines
Summary:
The MSVCRT deliberately sends main() code-page specific characters.
This isn't too useful to LLVM as we end up converting the arguments to
UTF-16 and subsequently attempt to use the result as, for example, a
file name.  Instead, we need to have the ability to access the Unicode
command line and transform it to UTF-8.

This has the distinct advantage over using the MSVC-specific wmain()
function as our entry point because:
 - It doesn't work on cygwin.
 - It only work on MinGW with caveats and only then on certain versions.
 - We get to keep our entry point as main(). :)

N.B.  This patch includes fixes to other parts of lib/Support/Windows
s.t. we would be able to take advantage of getting the Unicode paths.
E.G.  clang spawning clang -cc1 would want to give it Unicode arguments.

Reviewers: aaron.ballman, Bigcheese, rnk, ruiu

Reviewed By: rnk

CC: llvm-commits, ygao

Differential Revision: http://llvm-reviews.chandlerc.com/D1834

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192069 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-06 20:25:49 +00:00
..
ADT Undefine NetBSD, it may have been defined by an earlier include of 2013-09-25 17:49:57 +00:00
Analysis Rename DataLayout variables TD -> DL 2013-10-03 19:50:01 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Bitcode Add function attribute 'optnone'. 2013-08-23 11:53:55 +00:00
CodeGen Implement aarch64 neon instruction set AdvSIMD (Across). 2013-10-05 08:22:10 +00:00
Config Windows: Add support for unicode command lines 2013-10-06 20:25:49 +00:00
DebugInfo Dump the normal dwarf pubtypes section as well. 2013-09-25 23:02:41 +00:00
ExecutionEngine Adding support and tests for multiple module handling in lli 2013-10-04 00:49:38 +00:00
IR AVX-512: added scalar convert instructions and intrinsics. 2013-10-06 13:11:09 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LTO Optimize linkonce_odr unnamed_addr functions during LTO. 2013-10-03 18:29:09 +00:00
MC Remove some really nasty uses of hasRawTextSupport. 2013-10-05 16:42:21 +00:00
Object Object/COFF: Rename getXXX{Begin,End} -> xxx_{begin,end}. 2013-09-27 21:47:05 +00:00
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support Windows: Add support for unicode command lines 2013-10-06 20:25:49 +00:00
TableGen Move StringToOffsetTable into the TableGen include directory so I can use it in clang. 2013-08-29 05:09:55 +00:00
Target IfConverter: Use TargetSchedule for instruction latencies 2013-09-30 15:28:56 +00:00
Transforms Optimize linkonce_odr unnamed_addr functions during LTO. 2013-10-03 18:29:09 +00:00
AutoUpgrade.h AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. 2013-09-28 00:22:27 +00:00
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h Debug Info: In DIBuilder, the derived-from field of a DW_TAG_pointer_type 2013-10-05 01:43:03 +00:00
DIBuilder.h Revert r190269 to fix dragonegg failures. 2013-09-08 06:02:56 +00:00
GVMaterializer.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
InitializePasses.h Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllIR.h Rename LinkAllVMCore.h to LinkAllIR.h since VMCore directory was renamed to IR. 2013-01-10 21:55:02 +00:00
LinkAllPasses.h Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Linker.h Fix a performance bug in the Linker. 2013-05-04 05:05:18 +00:00
Pass.h moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo 2012-12-03 21:56:57 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
PassManagers.h Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.h This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
PassSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00